commit 918f8f0637ae65c1904644d9b58915838bbff35a Author: Kristian Høgh Date: Fri Dec 8 11:10:22 2006 +0100 Add optional argument to --verbose --verbose, increments verbose by 1 --verbose , set verbose to level --verbose=, set verbose to level diff --git a/man/vzctl.8 b/man/vzctl.8 index b2f0e26..0081f0d 100644 --- a/man/vzctl.8 +++ b/man/vzctl.8 @@ -30,8 +30,8 @@ OpenVZ internal purposes. These flags can be used with almost any option. .IP \fB--quiet\fR 4 Disables logging to log file and screen. -.IP \fB--verbose\fR 4 -Sets logging level to maximum value. +.IP \fB--verbose[\ level]\fR\ |\ \fB--verbose[=level]\fR 4 +Increase or set the logging level. No arguments will increase the current value by one. .SS Setting VE parameters .IP "\fBset\fR \fIveid\fR [\fIparameters\fR] [\fB--save\fR]" 4 This command sets various VE parameters. If flag \fB--save\fR is given, diff --git a/src/vzctl.c b/src/vzctl.c index cdfcd3f..b343e0f 100644 --- a/src/vzctl.c +++ b/src/vzctl.c @@ -102,6 +102,10 @@ int main(int argc, char *argv[], char *e { int action = 0; int verbose = 0; + int verbose_tmp = 0; + int verbose_inc = 0; + int verbose_abs = 0; + int verbose_abs_unset = 1; int quiet = 0; int veid, ret, skiplock = 0; char buf[256]; @@ -124,7 +128,24 @@ int main(int argc, char *argv[], char *e while (argc > 1) { if (!strcmp(argv[1], "--verbose")) { - verbose = 2; + if(parse_int(argv[2], &verbose_tmp)) + verbose_inc++; + else { + verbose_abs = verbose_tmp; + verbose_abs_unset = 0; + verbose_inc = 0; + argc--; + argv++; + } + } else if (!strncmp(argv[1], "--verbose=", 10)) { + if(argv[1][10] != '\0') { + verbose_abs_unset = parse_int(&argv[1][10], &verbose_abs); + verbose_inc = 0; + } + if(verbose_abs_unset) { + printf("Invalid value for --verbose\n"); + exit(VZ_INVALID_PARAMETER_SYNTAX); + } } else if (!strcmp(argv[1], "--quiet")) quiet = 1; else if (!strcmp(argv[1], "--version")) { @@ -141,7 +162,6 @@ int main(int argc, char *argv[], char *e exit(VZ_INVALID_PARAMETER_SYNTAX); } action_nm = argv[1]; - init_log(NULL, 0, 1, 0, 0, verbose, NULL); if (!strcmp(argv[1], "set")) { init_modules(&g_action, "set"); action = ACTION_SET; @@ -227,6 +247,11 @@ int main(int argc, char *argv[], char *e ret = VZ_NOCONFIG; goto error; } + if(!verbose_abs_unset) + verbose = verbose_abs; + verbose += verbose_inc; + if(verbose < -1) + verbose = -1; init_log(gparam->log.log_file, veid, gparam->log.enable != NO, gparam->log.level, quiet, verbose, "vzctl"); if ((ret = parse_action_opt(veid, action, argc, argv, cmd_p,