]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Use ver2 structures for all "doveadm mailbox *" commands.
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 19 Feb 2016 13:03:51 +0000 (15:03 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 19 Feb 2016 13:31:44 +0000 (15:31 +0200)
src/doveadm/doveadm-mail-mailbox-metadata.c
src/doveadm/doveadm-mail-mailbox-status.c
src/doveadm/doveadm-mail-mailbox.c
src/doveadm/doveadm-mail.c
src/doveadm/doveadm-mail.h

index 103c4680f4786ec0bfb841c462fcb1505904cfc8..bc185fc72113a4fe7311773316798ac410a03812 100644 (file)
@@ -286,22 +286,46 @@ static struct doveadm_mail_cmd_context *cmd_mailbox_metadata_list_alloc(void)
        return &ctx->ctx;
 }
 
-struct doveadm_mail_cmd cmd_mailbox_metadata_set = {
-       cmd_mailbox_metadata_set_alloc, "mailbox metadata set",
-       "<mailbox> <key> <value>"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_set_ver2 = {
+       .name = "mailbox metadata set",
+       .mail_cmd = cmd_mailbox_metadata_set_alloc,
+       .usage = "<mailbox> <key> <value>",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "key", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "value", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
 
-struct doveadm_mail_cmd cmd_mailbox_metadata_unset = {
-       cmd_mailbox_metadata_unset_alloc, "mailbox metadata unset",
-       "<mailbox> <key>"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_unset_ver2 = {
+       .name = "mailbox metadata unset",
+       .mail_cmd = cmd_mailbox_metadata_unset_alloc,
+       .usage = "<mailbox> <key>",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "key", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
 
-struct doveadm_mail_cmd cmd_mailbox_metadata_get = {
-       cmd_mailbox_metadata_get_alloc, "mailbox metadata get",
-       "<mailbox> <key>"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_get_ver2 = {
+       .name = "mailbox metadata get",
+       .mail_cmd = cmd_mailbox_metadata_get_alloc,
+       .usage = "<mailbox> <key>",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "key", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
 
-struct doveadm_mail_cmd cmd_mailbox_metadata_list = {
-       cmd_mailbox_metadata_list_alloc, "mailbox metadata list",
-       "<mailbox> [<key prefix>]"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_list_ver2 = {
+       .name = "mailbox metadata list",
+       .mail_cmd = cmd_mailbox_metadata_list_alloc,
+       .usage = "<mailbox> [<key prefix>]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "key-prefix", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
index 299644bfc4134138a40ef4b3f3104ea19392919d..6c950ef65dbaadcade8c14e6b14ddd711665c2be 100644 (file)
@@ -247,7 +247,15 @@ static struct doveadm_mail_cmd_context *cmd_mailbox_status_alloc(void)
        return &ctx->ctx;
 }
 
-struct doveadm_mail_cmd cmd_mailbox_status = {
-       cmd_mailbox_status_alloc, "mailbox status",
-       "[-t] <fields> <mailbox mask> [...]"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_status_ver2 = {
+        .name = "mailbox status",
+        .mail_cmd = cmd_mailbox_status_alloc,
+        .usage = "<mailbox> [...]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM("t", "total-sum", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM("f:", "field", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "fieldstr", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL | CMD_PARAM_FLAG_DO_NOT_EXPOSE) /* FIXME: horrible hack, remove me when possible */
+DOVEADM_CMD_PARAM(":", "mask", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
index 0e5c45972ba379c99c5905e4df2c5d1aed963127..65544b2cceb09d5cd5d2c9277ee6c45f17f8ad3a 100644 (file)
@@ -556,27 +556,70 @@ static struct doveadm_mail_cmd_context *cmd_mailbox_unsubscribe_alloc(void)
        return cmd_mailbox_subscriptions_alloc(FALSE);
 }
 
-struct doveadm_mail_cmd cmd_mailbox_list = {
-       cmd_mailbox_list_alloc, "mailbox list",
-       "[-7|-8] [-s] [<mailbox mask> [...]]"
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_list_ver2 = {
+       .name = "mailbox list",
+       .mail_cmd = cmd_mailbox_list_alloc,
+       .usage = "[-7|-8] [-s] [<mailbox mask> [...]]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM("7", "mutf7", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM("8", "no-mutf7", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM("s", "subscriptions", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM(":", "mask", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
-struct doveadm_mail_cmd cmd_mailbox_create = {
-       cmd_mailbox_create_alloc, "mailbox create",
-       "[-s] [-g <guid>] <mailbox> [...]"
+
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_create_ver2 = {
+       .name = "mailbox create",
+       .mail_cmd = cmd_mailbox_create_alloc,
+       .usage = "[-s] [-g <guid>] <mailbox> [...]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM("s", "subscriptions", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM("g", "guid", CMD_PARAM_STR, 0)
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
-struct doveadm_mail_cmd cmd_mailbox_delete = {
-       cmd_mailbox_delete_alloc, "mailbox delete",
-       "[-s] <mailbox> [...]"
+
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_delete_ver2 = {
+       .name = "mailbox delete",
+        .mail_cmd = cmd_mailbox_delete_alloc,
+        .usage = "[-s] <mailbox> [...]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM("s", "subscriptions", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
-struct doveadm_mail_cmd cmd_mailbox_rename = {
-       cmd_mailbox_rename_alloc, "mailbox rename",
-       "[-s] <old name> <new name>"
+
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_rename_ver2 = {
+       .name = "mailbox rename",
+       .mail_cmd = cmd_mailbox_rename_alloc,
+       .usage = "[-s] <old name> <new name>",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM("s", "subscriptions", CMD_PARAM_BOOL, 0)
+DOVEADM_CMD_PARAM(":", "old", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAM(":", "new", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
-struct doveadm_mail_cmd cmd_mailbox_subscribe = {
-       cmd_mailbox_subscribe_alloc, "mailbox subscribe",
-       "<mailbox> [...]"
+
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_subscribe_ver2 = {
+       .name = "mailbox subscribe",
+       .mail_cmd = cmd_mailbox_subscribe_alloc,
+       .usage = "<mailbox> [...]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
-struct doveadm_mail_cmd cmd_mailbox_unsubscribe = {
-       cmd_mailbox_unsubscribe_alloc, "mailbox unsubscribe",
-       "<mailbox> [...]"
+
+struct doveadm_cmd_ver2 doveadm_cmd_mailbox_unsubscribe_ver2 = {
+       .name = "mailbox unsubscribe",
+       .mail_cmd = cmd_mailbox_unsubscribe_alloc,
+       .usage = "<mailbox> [...]",
+DOVEADM_CMD_PARAMS_START
+DOVEADM_CMD_MAIL_COMMON
+DOVEADM_CMD_PARAM(":", "mailbox", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
+DOVEADM_CMD_PARAMS_END
 };
index dac6c034de78112636bf15145df3db67f9127f10..7647b752fa14f6d2f631ed6f04ea2355ad8f5aa1 100644 (file)
@@ -827,17 +827,6 @@ static struct doveadm_mail_cmd *mail_commands[] = {
        &cmd_copy,
        &cmd_deduplicate,
        &cmd_move,
-       &cmd_mailbox_list,
-       &cmd_mailbox_create,
-       &cmd_mailbox_delete,
-       &cmd_mailbox_rename,
-       &cmd_mailbox_subscribe,
-       &cmd_mailbox_unsubscribe,
-       &cmd_mailbox_status,
-       &cmd_mailbox_metadata_set,
-       &cmd_mailbox_metadata_unset,
-       &cmd_mailbox_metadata_get,
-       &cmd_mailbox_metadata_list,
        &cmd_batch,
        &cmd_dsync_backup,
        &cmd_dsync_mirror,
@@ -845,6 +834,17 @@ static struct doveadm_mail_cmd *mail_commands[] = {
 };
 
 static struct doveadm_cmd_ver2 *mail_commands_ver2[] = {
+       &doveadm_cmd_mailbox_metadata_set_ver2,
+       &doveadm_cmd_mailbox_metadata_unset_ver2,
+       &doveadm_cmd_mailbox_metadata_get_ver2,
+       &doveadm_cmd_mailbox_metadata_list_ver2,
+       &doveadm_cmd_mailbox_status_ver2,
+       &doveadm_cmd_mailbox_list_ver2,
+       &doveadm_cmd_mailbox_create_ver2,
+       &doveadm_cmd_mailbox_delete_ver2,
+       &doveadm_cmd_mailbox_rename_ver2,
+       &doveadm_cmd_mailbox_subscribe_ver2,
+       &doveadm_cmd_mailbox_unsubscribe_ver2
 };
 
 void doveadm_mail_init(void)
index 969a8bc74b0acdb4ed89a360869f0dfdea82f7c5..a70e9820331ce1361e62eaca878eff5bcbe505aa 100644 (file)
@@ -182,19 +182,20 @@ extern struct doveadm_mail_cmd cmd_altmove;
 extern struct doveadm_mail_cmd cmd_copy;
 extern struct doveadm_mail_cmd cmd_deduplicate;
 extern struct doveadm_mail_cmd cmd_move;
-extern struct doveadm_mail_cmd cmd_mailbox_list;
-extern struct doveadm_mail_cmd cmd_mailbox_create;
-extern struct doveadm_mail_cmd cmd_mailbox_delete;
-extern struct doveadm_mail_cmd cmd_mailbox_rename;
-extern struct doveadm_mail_cmd cmd_mailbox_subscribe;
-extern struct doveadm_mail_cmd cmd_mailbox_unsubscribe;
-extern struct doveadm_mail_cmd cmd_mailbox_status;
-extern struct doveadm_mail_cmd cmd_mailbox_metadata_set;
-extern struct doveadm_mail_cmd cmd_mailbox_metadata_unset;
-extern struct doveadm_mail_cmd cmd_mailbox_metadata_get;
-extern struct doveadm_mail_cmd cmd_mailbox_metadata_list;
 extern struct doveadm_mail_cmd cmd_batch;
 
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_set_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_unset_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_get_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_metadata_list_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_status_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_list_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_create_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_delete_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_rename_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_subscribe_ver2;
+extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_unsubscribe_ver2;
+
 #define DOVEADM_CMD_MAIL_COMMON \
 DOVEADM_CMD_PARAM("A", "all-users", CMD_PARAM_BOOL, 0) \
 DOVEADM_CMD_PARAM("S:", "socket-path", CMD_PARAM_STR, 0) \