diff options
author | 2010-01-14 07:43:18 +0100 | |
---|---|---|
committer | 2010-01-14 07:43:18 +0100 | |
commit | 33ba4ad795db91deccc5b79dcb3d6b035ff7d642 (patch) | |
tree | 01490f91821ed46ac8f8274e77c56e68e161822c /src/lxc/lxc_start.c | |
parent | add --define to restart (diff) | |
download | lxc-33ba4ad795db91deccc5b79dcb3d6b035ff7d642.tar.gz lxc-33ba4ad795db91deccc5b79dcb3d6b035ff7d642.tar.bz2 lxc-33ba4ad795db91deccc5b79dcb3d6b035ff7d642.zip |
lxc: add --define to start
Signed-off-by: Cedric Le Goater <clg@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Diffstat (limited to 'src/lxc/lxc_start.c')
-rw-r--r-- | src/lxc/lxc_start.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c index 9cde900..7a9c13c 100644 --- a/src/lxc/lxc_start.c +++ b/src/lxc/lxc_start.c @@ -50,11 +50,14 @@ lxc_log_define(lxc_start_ui, lxc_start); +static struct lxc_list defines; + static int my_parser(struct lxc_arguments* args, int c, char* arg) { switch (c) { case 'd': args->daemonize = 1; break; case 'f': args->rcfile = arg; break; + case 's': return lxc_config_define_add(&defines, arg); } return 0; } @@ -62,6 +65,7 @@ static int my_parser(struct lxc_arguments* args, int c, char* arg) static const struct option my_longopts[] = { {"daemon", no_argument, 0, 'd'}, {"rcfile", required_argument, 0, 'f'}, + {"define", required_argument, 0, 's'}, LXC_COMMON_OPTIONS }; @@ -75,7 +79,8 @@ lxc-start start COMMAND in specified container NAME\n\ Options :\n\ -n, --name=NAME NAME for name of the container\n\ -d, --daemon daemonize the container\n\ - -f, --rcfile=FILE Load configuration file FILE\n", + -f, --rcfile=FILE Load configuration file FILE\n\ + -s, --define KEY=VAL Assign VAL to configuration variable KEY\n", .options = my_longopts, .parser = my_parser, .checker = NULL, @@ -135,6 +140,8 @@ int main(int argc, char *argv[]) char *rcfile = NULL; struct lxc_conf *conf; + lxc_list_init(&defines); + if (lxc_arguments_parse(&my_args, argc, argv)) return err; @@ -174,6 +181,9 @@ int main(int argc, char *argv[]) return err; } + if (lxc_config_define_load(&defines, conf)) + return err; + if (!rcfile && !strcmp("/sbin/init", args[0])) { ERROR("no configuration file for '/sbin/init' (may crash the host)"); return err; |