aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Le Goater <clg@fr.ibm.com>2010-01-14 07:43:18 +0100
committerDaniel Lezcano <dlezcano@fr.ibm.com>2010-01-14 07:43:18 +0100
commit33ba4ad795db91deccc5b79dcb3d6b035ff7d642 (patch)
tree01490f91821ed46ac8f8274e77c56e68e161822c /src/lxc/lxc_start.c
parentadd --define to restart (diff)
downloadlxc-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.c12
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;