dovecot-2.1: doveadm instance remove: Allow removing using name ...

dovecot at dovecot.org dovecot at dovecot.org
Wed Feb 8 22:50:30 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/448c48968174
changeset: 14075:448c48968174
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Feb 08 22:50:20 2012 +0200
description:
doveadm instance remove: Allow removing using name as well as base dir.

diffstat:

 src/doveadm/doveadm-instance.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diffs (31 lines):

diff -r 06c9a46f35a8 -r 448c48968174 src/doveadm/doveadm-instance.c
--- a/src/doveadm/doveadm-instance.c	Wed Feb 08 22:07:01 2012 +0200
+++ b/src/doveadm/doveadm-instance.c	Wed Feb 08 22:50:20 2012 +0200
@@ -74,13 +74,17 @@
 static void cmd_instance_remove(int argc, char *argv[])
 {
 	struct master_instance_list *list;
+	const struct master_instance *inst;
+	const char *base_dir;
 	int ret;
 
 	if (argc != 2)
 		instance_cmd_help(cmd_instance_remove);
 
 	list = master_instance_list_init(MASTER_INSTANCE_PATH);
-	if ((ret = master_instance_list_remove(list, argv[1])) < 0)
+	inst = master_instance_list_find_by_name(list, argv[1]);
+	base_dir = inst != NULL ? inst->base_dir : argv[1];
+	if ((ret = master_instance_list_remove(list, base_dir)) < 0)
 		i_error("Failed to remove instance");
 	else if (ret == 0)
 		i_error("Instance already didn't exist");
@@ -89,7 +93,7 @@
 
 struct doveadm_cmd doveadm_cmd_instance[] = {
 	{ cmd_instance_list, "instance list", "" },
-	{ cmd_instance_remove, "instance remove", "<base dir>" }
+	{ cmd_instance_remove, "instance remove", "<name> | <base dir>" }
 };
 
 static void instance_cmd_help(doveadm_command_t *cmd)


More information about the dovecot-cvs mailing list