lxc_log_define(lxc_console, lxc);
-static char etoc(const char *expr)
-{
- /* returns "control code" of given expression */
- char c = expr[0] == '^' ? expr[1] : expr[0];
-
- return 1 + ((c > 'Z') ? (c - 'a') : (c - 'Z'));
-}
-
-static int my_parser(struct lxc_arguments *args, int c, char *arg)
-{
- switch (c) {
- case 't':
- if (lxc_safe_uint(arg, &args->ttynum) < 0)
- return -1;
- break;
- case 'e':
- args->escape = etoc(arg);
- break;
- }
-
- return 0;
-}
+static int my_parser(struct lxc_arguments *args, int c, char *arg);
+static char etoc(const char *expr);
static const struct option my_longopts[] = {
{"tty", required_argument, 0, 't'},
};
static struct lxc_arguments my_args = {
- .progname = "lxc-console",
- .help = "\
+ .progname = "lxc-console",
+ .help = "\
--name=NAME [--tty NUMBER]\n\
\n\
lxc-console logs on the container with the identifier NAME\n\
-t, --tty=NUMBER console tty number\n\
-e, --escape=PREFIX prefix for escape command\n\
--rcfile=FILE Load configuration file FILE\n",
- .options = my_longopts,
- .parser = my_parser,
- .checker = NULL,
- .ttynum = -1,
- .escape = 1,
+ .options = my_longopts,
+ .parser = my_parser,
+ .checker = NULL,
+ .log_priority = "ERROR",
+ .log_file = "none",
+ .ttynum = -1,
+ .escape = 1,
};
+static int my_parser(struct lxc_arguments *args, int c, char *arg)
+{
+ switch (c) {
+ case 't':
+ if (lxc_safe_uint(arg, &args->ttynum) < 0)
+ return -1;
+ break;
+ case 'e':
+ args->escape = etoc(arg);
+ break;
+ }
+
+ return 0;
+}
+
+static char etoc(const char *expr)
+{
+ /* returns "control code" of given expression */
+ char c = expr[0] == '^' ? expr[1] : expr[0];
+
+ return 1 + ((c > 'Z') ? (c - 'a') : (c - 'Z'));
+}
+
int main(int argc, char *argv[])
{
int ret;
struct lxc_container *c;
struct lxc_log log;
- ret = lxc_arguments_parse(&my_args, argc, argv);
- if (ret)
+ if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE);
- /* Only create log if explicitly instructed */
- if (my_args.log_file || my_args.log_priority) {
- log.name = my_args.name;
- log.file = my_args.log_file;
- log.level = my_args.log_priority;
- log.prefix = my_args.progname;
- log.quiet = my_args.quiet;
- log.lxcpath = my_args.lxcpath[0];
+ log.name = my_args.name;
+ log.file = my_args.log_file;
+ log.level = my_args.log_priority;
+ log.prefix = my_args.progname;
+ log.quiet = my_args.quiet;
+ log.lxcpath = my_args.lxcpath[0];
- if (lxc_log_init(&log))
- exit(EXIT_FAILURE);
- }
+ if (lxc_log_init(&log))
+ exit(EXIT_FAILURE);
c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) {