lxc_freeze.c revision e6cde7418c4e697876f0041b888766ab4732812b
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen/*
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * lxc: linux Container library
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen *
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * (C) Copyright IBM Corp. 2007, 2008
ffd9a1898a18fadfc5dce399162c25d50548f905Timo Sirainen *
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * Authors:
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * Daniel Lezcano <dlezcano at fr.ibm.com>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen *
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * This library is free software; you can redistribute it and/or
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * modify it under the terms of the GNU Lesser General Public
2d49f150b4bce6f2f59a84e268e4777901c3e42cTimo Sirainen * License as published by the Free Software Foundation; either
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * version 2.1 of the License, or (at your option) any later version.
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen *
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * This library is distributed in the hope that it will be useful,
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * but WITHOUT ANY WARRANTY; without even the implied warranty of
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * Lesser General Public License for more details.
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen *
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * You should have received a copy of the GNU Lesser General Public
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * License along with this library; if not, write to the Free Software
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen */
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <stdio.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <unistd.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <sys/types.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <libgen.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <string.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <lxc/lxc.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include <lxc/log.h>
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen#include "arguments.h"
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainenstatic const struct option my_longopts[] = {
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen LXC_COMMON_OPTIONS
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen};
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainenstatic struct lxc_arguments my_args = {
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen .progname = "lxc-freeze",
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen .help = "\
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen--name=NAME\n\
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen\n\
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainenlxc-freeze freezes a container with the identifier NAME\n\
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen\n\
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo SirainenOptions :\n\
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen -n, --name=NAME NAME for name of the container",
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen .options = my_longopts,
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen .parser = NULL,
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen .checker = NULL,
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen};
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainenint main(int argc, char *argv[])
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen{
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen if (lxc_arguments_parse(&my_args, argc, argv))
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen return -1;
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen if (lxc_log_init(my_args.log_file, my_args.log_priority,
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen my_args.progname, my_args.quiet))
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen return -1;
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen return lxc_freeze(my_args.name);
7ded22760598b78ee29f9418eacc0abe3fb51055Timo Sirainen}
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen
2a34e2be33f8a17d21384a5527ed9f75f4d270e0Timo Sirainen