From b90ac7f1d3145928bcbec77763cad75fdb8a0aa8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 7 Apr 2010 02:46:11 +0300 Subject: [PATCH] doveadm: Mail commands now take username as -u parameter and all with -A. If -u or -a isn't given, use the current user's settings (without userdb lookup). --HG-- branch : HEAD --- src/doveadm/doveadm-mail.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index c96095c43e..facc0f5d39 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -218,26 +218,30 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[]) if (doveadm_debug) service_flags |= MAIL_STORAGE_SERVICE_FLAG_DEBUG; - while ((c = getopt(argc, argv, "a")) > 0) { + username = getenv("USER"); + while ((c = getopt(argc, argv, "Au:")) > 0) { switch (c) { - case 'a': + case 'A': all_users = TRUE; break; + case 'u': + service_flags |= + MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP; + username = optarg; + break; default: doveadm_mail_help(cmd); } } + argv += optind; + if (!all_users) { - if (optind == argc) - doveadm_mail_help(cmd); - service_flags |= MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP; - username = argv[optind++]; doveadm_mail_single_user(cmd->cmd, username, service_flags, - (const char **)argv + optind); + (const char **)argv); } else { service_flags |= MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP; doveadm_mail_all_users(cmd->cmd, service_flags, - (const char **)argv + optind); + (const char **)argv); } } @@ -265,7 +269,7 @@ void doveadm_mail_usage(void) const struct doveadm_mail_cmd *cmd; array_foreach(&doveadm_mail_cmds, cmd) { - fprintf(stderr, USAGE_CMDNAME_FMT" |-a", cmd->name); + fprintf(stderr, USAGE_CMDNAME_FMT" [-u |-A]", cmd->name); if (cmd->usage_args != NULL) fprintf(stderr, " %s", cmd->usage_args); fputc('\n', stderr); @@ -274,7 +278,7 @@ void doveadm_mail_usage(void) void doveadm_mail_help(const struct doveadm_mail_cmd *cmd) { - fprintf(stderr, "doveadm %s |-a %s\n", cmd->name, + fprintf(stderr, "doveadm %s [-u |-A] %s\n", cmd->name, cmd->usage_args == NULL ? "" : cmd->usage_args); exit(0); } -- 2.47.3