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
};
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
};
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
};
&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,
};
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)
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) \