} 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);
break;
}
}
- if ((service_flags & MAIL_STORAGE_SERVICE_FLAG_DEBUG) != 0)
+ if (doveadm_verbose)
printf("\n");
i_set_failure_prefix("doveadm: ");
if (ret < 0)
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);
}
#include <stdlib.h>
#include <unistd.h>
+bool doveadm_verbose = FALSE, doveadm_debug = FALSE;
+
static ARRAY_DEFINE(doveadm_cmds, struct doveadm_cmd);
void doveadm_register_cmd(const struct doveadm_cmd *cmd)
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);
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();
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);