lxc_error(args, "could not parse command line");
return ret;
}
+
+extern char **lxc_arguments_dup(const char *file, struct lxc_arguments *args)
+{
+ char **argv;
+ int opt, nbargs = args->argc + 2;
+
+ if (args->log_file)
+ nbargs += 2;
+ if (args->log_priority)
+ nbargs += 2;
+ if (args->quiet)
+ nbargs += 1;
+
+ argv = malloc(nbargs * sizeof(*argv));
+ if (!argv)
+ return NULL;
+
+ nbargs = 0;
+
+ argv[nbargs++] = strdup(file);
+
+ if (args->log_file) {
+ argv[nbargs++] = "--logfile";
+ argv[nbargs++] = strdup(args->log_file);
+ }
+
+ if (args->log_priority) {
+ argv[nbargs++] = "--logpriority";
+ argv[nbargs++] = strdup(args->log_priority);
+ }
+
+ if (args->quiet)
+ argv[nbargs++] = "--quiet";
+
+ argv[nbargs++] = "--";
+
+ for (opt = 0; opt < args->argc; opt++)
+ argv[nbargs++] = strdup(args->argv[opt]);
+
+ argv[nbargs] = NULL;
+
+ return argv;
+}
/* option keys for long only options */
#define OPT_USAGE 0x1000
-extern int lxc_arguments_parse(struct lxc_arguments *a_args,
+extern int lxc_arguments_parse(struct lxc_arguments *args,
int argc, char *const argv[]);
+
+extern char **lxc_arguments_dup(const char *file, struct lxc_arguments *args);
+
extern const char *lxc_strerror(int errnum);
#define lxc_error(arg, fmt, args...) if (!(arg)->quiet) \