]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc_init: move main() down
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 25 Mar 2020 11:46:02 +0000 (12:46 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Wed, 25 Mar 2020 11:47:07 +0000 (12:47 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cmd/lxc_init.c

index 10fe64f2bbc083aa5f673ac521d98b94273c0bc6..24f67f08132fb96189dd01735fc694803dc00029 100644 (file)
@@ -70,9 +70,6 @@ struct arguments {
        int argc;
 };
 
-static int arguments_parse(struct arguments *my_args, int argc,
-                          char *const argv[]);
-
 static struct arguments my_args = {
        .options   = long_options,
        .shortopts = short_options
@@ -191,6 +188,99 @@ static void remove_self(void)
                return;
 }
 
+__noreturn static void print_usage_exit(const struct option longopts[])
+
+{
+       fprintf(stderr, "Usage: lxc-init [-n|--name=NAME] [-h|--help] [--usage] [--version]\n\
+               [-q|--quiet] [-P|--lxcpath=LXCPATH]\n");
+       exit(EXIT_SUCCESS);
+}
+
+__noreturn static void print_version_exit(void)
+{
+       printf("%s\n", LXC_VERSION);
+       exit(EXIT_SUCCESS);
+}
+
+static void print_help(void)
+{
+       fprintf(stderr, "\
+Usage: lxc-init --name=NAME -- COMMAND\n\
+\n\
+  lxc-init start a COMMAND as PID 2 inside a container\n\
+\n\
+Options :\n\
+  -n, --name=NAME                  NAME of the container\n\
+  -q, --quiet                      Don't produce any output\n\
+  -P, --lxcpath=PATH               Use specified container path\n\
+  -?, --help                       Give this help list\n\
+      --usage                      Give a short usage message\n\
+      --version                    Print the version number\n\
+\n\
+Mandatory or optional arguments to long options are also mandatory or optional\n\
+for any corresponding short options.\n\
+\n\
+See the lxc-init man page for further information.\n\n");
+}
+
+static int arguments_parse(struct arguments *args, int argc,
+                          char *const argv[])
+{
+       for (;;) {
+               int c;
+               int index = 0;
+
+               c = getopt_long(argc, argv, args->shortopts, args->options, &index);
+               if (c == -1)
+                       break;
+               switch (c) {
+               case 'n':
+                       args->name = optarg;
+                       break;
+               case 'o':
+                       break;
+               case 'l':
+                       break;
+               case 'q':
+                       args->quiet = true;
+                       break;
+               case 'P':
+                       remove_trailing_slashes(optarg);
+                       args->lxcpath = optarg;
+                       break;
+               case OPT_USAGE:
+                       print_usage_exit(args->options);
+               case OPT_VERSION:
+                       print_version_exit();
+               case '?':
+                       print_help();
+                       exit(EXIT_FAILURE);
+               case 'h':
+                       print_help();
+                       exit(EXIT_SUCCESS);
+               }
+       }
+
+       /*
+        * Reclaim the remaining command arguments
+        */
+       args->argv = &argv[optind];
+       args->argc = argc - optind;
+
+       /* If no lxcpath was given, use default */
+       if (!args->lxcpath)
+               args->lxcpath = lxc_global_config_value("lxc.lxcpath");
+
+       /* Check the command options */
+       if (!args->name) {
+               if (!args->quiet)
+                       fprintf(stderr, "lxc-init: missing container name, use --name option\n");
+               return -1;
+       }
+
+       return 0;
+}
+
 int main(int argc, char *argv[])
 {
        int i, logfd, ret;
@@ -426,96 +516,3 @@ out:
                exit(EXIT_FAILURE);
        exit(exit_with);
 }
-
-__noreturn static void print_usage_exit(const struct option longopts[])
-
-{
-       fprintf(stderr, "Usage: lxc-init [-n|--name=NAME] [-h|--help] [--usage] [--version]\n\
-               [-q|--quiet] [-P|--lxcpath=LXCPATH]\n");
-       exit(EXIT_SUCCESS);
-}
-
-__noreturn static void print_version_exit(void)
-{
-       printf("%s\n", LXC_VERSION);
-       exit(EXIT_SUCCESS);
-}
-
-static void print_help(void)
-{
-       fprintf(stderr, "\
-Usage: lxc-init --name=NAME -- COMMAND\n\
-\n\
-  lxc-init start a COMMAND as PID 2 inside a container\n\
-\n\
-Options :\n\
-  -n, --name=NAME                  NAME of the container\n\
-  -q, --quiet                      Don't produce any output\n\
-  -P, --lxcpath=PATH               Use specified container path\n\
-  -?, --help                       Give this help list\n\
-      --usage                      Give a short usage message\n\
-      --version                    Print the version number\n\
-\n\
-Mandatory or optional arguments to long options are also mandatory or optional\n\
-for any corresponding short options.\n\
-\n\
-See the lxc-init man page for further information.\n\n");
-}
-
-static int arguments_parse(struct arguments *args, int argc,
-                          char *const argv[])
-{
-       for (;;) {
-               int c;
-               int index = 0;
-
-               c = getopt_long(argc, argv, args->shortopts, args->options, &index);
-               if (c == -1)
-                       break;
-               switch (c) {
-               case 'n':
-                       args->name = optarg;
-                       break;
-               case 'o':
-                       break;
-               case 'l':
-                       break;
-               case 'q':
-                       args->quiet = true;
-                       break;
-               case 'P':
-                       remove_trailing_slashes(optarg);
-                       args->lxcpath = optarg;
-                       break;
-               case OPT_USAGE:
-                       print_usage_exit(args->options);
-               case OPT_VERSION:
-                       print_version_exit();
-               case '?':
-                       print_help();
-                       exit(EXIT_FAILURE);
-               case 'h':
-                       print_help();
-                       exit(EXIT_SUCCESS);
-               }
-       }
-
-       /*
-        * Reclaim the remaining command arguments
-        */
-       args->argv = &argv[optind];
-       args->argc = argc - optind;
-
-       /* If no lxcpath was given, use default */
-       if (!args->lxcpath)
-               args->lxcpath = lxc_global_config_value("lxc.lxcpath");
-
-       /* Check the command options */
-       if (!args->name) {
-               if (!args->quiet)
-                       fprintf(stderr, "lxc-init: missing container name, use --name option\n");
-               return -1;
-       }
-
-       return 0;
-}