dovecot-2.0-sslstream: doveadm: Added global -v (verbose) and -D...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:56:29 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/93c87044469f
changeset: 10346:93c87044469f
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Nov 17 18:12:34 2009 -0500
description:
doveadm: Added global -v (verbose) and -D (debug) options.
Removed "doveadm <mail command> -v".

diffstat:

3 files changed, 27 insertions(+), 11 deletions(-)
src/doveadm/doveadm-mail.c |   12 ++++++------
src/doveadm/doveadm.c      |   24 +++++++++++++++++++-----
src/doveadm/doveadm.h      |    2 ++

diffs (102 lines):

diff -r 3836c67fa5f1 -r 93c87044469f src/doveadm/doveadm-mail.c
--- a/src/doveadm/doveadm-mail.c	Tue Nov 17 14:39:31 2009 -0500
+++ b/src/doveadm/doveadm-mail.c	Tue Nov 17 18:12:34 2009 -0500
@@ -181,7 +181,7 @@ doveadm_mail_all_users(doveadm_mail_comm
 		} T_END;
 		if (ret < 0)
 			break;
-		if ((service_flags & MAIL_STORAGE_SERVICE_FLAG_DEBUG) != 0) {
+		if (doveadm_verbose) {
 			if (++user_idx % interval == 0) {
 				printf("\r%d / %d", user_idx, user_count);
 				fflush(stdout);
@@ -193,7 +193,7 @@ doveadm_mail_all_users(doveadm_mail_comm
 			break;
 		}
 	}
-	if ((service_flags & MAIL_STORAGE_SERVICE_FLAG_DEBUG) != 0)
+	if (doveadm_verbose)
 		printf("\n");
 	i_set_failure_prefix("doveadm: ");
 	if (ret < 0)
@@ -209,13 +209,13 @@ doveadm_mail_cmd(const struct doveadm_ma
 	bool all_users = FALSE;
 	int c;
 
-	while ((c = getopt(argc, argv, "av")) > 0) {
+	if (doveadm_debug)
+		service_flags |= MAIL_STORAGE_SERVICE_FLAG_DEBUG;
+
+	while ((c = getopt(argc, argv, "a")) > 0) {
 		switch (c) {
 		case 'a':
 			all_users = TRUE;
-			break;
-		case 'v':
-			service_flags |= MAIL_STORAGE_SERVICE_FLAG_DEBUG;
 			break;
 		default:
 			doveadm_mail_help(cmd);
diff -r 3836c67fa5f1 -r 93c87044469f src/doveadm/doveadm.c
--- a/src/doveadm/doveadm.c	Tue Nov 17 14:39:31 2009 -0500
+++ b/src/doveadm/doveadm.c	Tue Nov 17 18:12:34 2009 -0500
@@ -9,6 +9,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
+
+bool doveadm_verbose = FALSE, doveadm_debug = FALSE;
 
 static ARRAY_DEFINE(doveadm_cmds, struct doveadm_cmd);
 
@@ -73,10 +75,13 @@ int main(int argc, char *argv[])
 int main(int argc, char *argv[])
 {
 	const char *cmd_name;
+	int c;
 
+	/* "+" is GNU extension to stop at the first non-option.
+	   others just accept -+ option. */
 	master_service = master_service_init("doveadm",
 					     MASTER_SERVICE_FLAG_STANDALONE,
-					     &argc, &argv, "+");
+					     &argc, &argv, "+Dv");
 	i_array_init(&doveadm_cmds, 32);
 	doveadm_mail_init();
 	doveadm_register_cmd(&doveadm_cmd_help);
@@ -86,10 +91,19 @@ int main(int argc, char *argv[])
 	doveadm_register_cmd(&doveadm_cmd_pw);
 	doveadm_register_cmd(&doveadm_cmd_who);
 
-	/* "+" is GNU extension to stop at the first non-option.
-	   others just accept -+ option. */
-	if (master_getopt(master_service) > 0)
-		usage();
+	while ((c = master_getopt(master_service)) > 0) {
+		switch (c) {
+		case 'D':
+			doveadm_debug = TRUE;
+			doveadm_verbose = TRUE;
+			break;
+		case 'v':
+			doveadm_verbose = TRUE;
+			break;
+		default:
+			return FATAL_DEFAULT;
+		}
+	}
 	if (optind == argc)
 		usage();
 
diff -r 3836c67fa5f1 -r 93c87044469f src/doveadm/doveadm.h
--- a/src/doveadm/doveadm.h	Tue Nov 17 14:39:31 2009 -0500
+++ b/src/doveadm/doveadm.h	Tue Nov 17 18:12:34 2009 -0500
@@ -18,6 +18,8 @@ extern struct doveadm_cmd doveadm_cmd_pw
 extern struct doveadm_cmd doveadm_cmd_pw;
 extern struct doveadm_cmd doveadm_cmd_who;
 
+extern bool doveadm_verbose, doveadm_debug;
+
 void doveadm_register_cmd(const struct doveadm_cmd *cmd);
 
 void usage(void);


More information about the dovecot-cvs mailing list