dovecot-2.2: doveadm instance list: Added -c parameter to easily...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jun 24 20:57:39 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/ee5d838ebcbb
changeset: 14648:ee5d838ebcbb
user: Timo Sirainen <tss at iki.fi>
date: Mon Jun 04 21:21:52 2012 +0300
description:
doveadm instance list: Added -c parameter to easily get the instance's config path.
diffstat:
src/doveadm/doveadm-instance.c | 35 ++++++++++++++++++++++++++++-------
1 files changed, 28 insertions(+), 7 deletions(-)
diffs (66 lines):
diff -r d85421a77fa1 -r ee5d838ebcbb src/doveadm/doveadm-instance.c
--- a/src/doveadm/doveadm-instance.c Mon Jun 04 21:21:28 2012 +0300
+++ b/src/doveadm/doveadm-instance.c Mon Jun 04 21:21:52 2012 +0300
@@ -5,6 +5,7 @@
#include "doveadm.h"
#include "doveadm-print.h"
+#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <signal.h>
@@ -48,19 +49,39 @@
struct master_instance_list_iter *iter;
const struct master_instance *inst;
const char *pidfile_path;
+ bool show_config = FALSE;
+ int c;
- doveadm_print_init(DOVEADM_PRINT_TYPE_TABLE);
- doveadm_print_header("path", "path", DOVEADM_PRINT_HEADER_FLAG_EXPAND);
- doveadm_print_header_simple("name");
- doveadm_print_header_simple("last used");
- doveadm_print_header_simple("running");
+ while ((c = getopt(argc, argv, "c")) > 0) {
+ switch (c) {
+ case 'c':
+ show_config = TRUE;
+ break;
+ default:
+ help(&doveadm_cmd_instance[0]);
+ }
+ }
+ argv += optind;
+
+ if (!show_config) {
+ doveadm_print_init(DOVEADM_PRINT_TYPE_TABLE);
+ doveadm_print_header("path", "path", DOVEADM_PRINT_HEADER_FLAG_EXPAND);
+ doveadm_print_header_simple("name");
+ doveadm_print_header_simple("last used");
+ doveadm_print_header_simple("running");
+ }
list = master_instance_list_init(MASTER_INSTANCE_PATH);
iter = master_instance_list_iterate_init(list);
while ((inst = master_instance_iterate_list_next(iter)) != NULL) {
- if (argc > 1 && strcmp(argv[1], inst->name) != 0)
+ if (argv[0] != NULL && strcmp(argv[0], inst->name) != 0)
continue;
+ if (show_config) {
+ printf("%s\n", inst->config_path == NULL ? "" :
+ inst->config_path);
+ continue;
+ }
doveadm_print(inst->base_dir);
doveadm_print(inst->name);
doveadm_print(unixdate2str(inst->last_used));
@@ -98,7 +119,7 @@
}
struct doveadm_cmd doveadm_cmd_instance[] = {
- { cmd_instance_list, "instance list", "[<name>]" },
+ { cmd_instance_list, "instance list", "[-c] [<name>]" },
{ cmd_instance_remove, "instance remove", "<name> | <base dir>" }
};
More information about the dovecot-cvs
mailing list