Mercurial > dovecot > core-2.2
changeset 13227:f4b565b76827
fts: Added "doveadm fts rescan" command.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 12 Aug 2011 17:37:23 +0300 |
parents | fd2e6a08052a |
children | bed970b4ca5e |
files | src/plugins/fts/doveadm-fts.c |
diffstat | 1 files changed, 35 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts/doveadm-fts.c Fri Aug 12 17:33:29 2011 +0300 +++ b/src/plugins/fts/doveadm-fts.c Fri Aug 12 17:37:23 2011 +0300 @@ -66,8 +66,42 @@ return ctx; } +static void +cmd_fts_rescan_run(struct doveadm_mail_cmd_context *ctx, struct mail_user *user) +{ + const char *ns_prefix = ctx->args[0]; + struct mail_namespace *ns; + struct fts_backend *backend; + + if (fts_namespace_find(user, ns_prefix, &ns) < 0) + return; + backend = fts_list_backend(ns->list); + if (fts_backend_rescan(backend) < 0) + i_error("fts rescan failed"); +} + +static void +cmd_fts_rescan_init(struct doveadm_mail_cmd_context *ctx ATTR_UNUSED, + const char *const args[]) +{ + if (str_array_length(args) > 1) + doveadm_mail_help_name("fts rescan"); +} + +static struct doveadm_mail_cmd_context * +cmd_fts_rescan_alloc(void) +{ + struct doveadm_mail_cmd_context *ctx; + + ctx = doveadm_mail_cmd_alloc(struct doveadm_mail_cmd_context); + ctx->v.run = cmd_fts_rescan_run; + ctx->v.init = cmd_fts_rescan_init; + return ctx; +} + static struct doveadm_mail_cmd fts_commands[] = { - { cmd_fts_optimize_alloc, "fts optimize", "[<namespace>]" } + { cmd_fts_optimize_alloc, "fts optimize", "[<namespace>]" }, + { cmd_fts_rescan_alloc, "fts rescan", "[<namespace>]" } }; void doveadm_fts_plugin_init(struct module *module ATTR_UNUSED)