aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-setup.c
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-04-23 10:30:40 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-04-23 10:30:40 -0700
commit14fb9f3c5531f45c9b5bf2e710f033288bcda5c8 (patch)
treeb63db0bf7f08e3f8c23e180796d6e8e2bddaf8f3 /notmuch-setup.c
parentc63b6473ca6b391dc858672cf36f56ec0baf3e35 (diff)
notmuch setup: Prompt for tags to set on new messages.
Our "notmuch setup" command is only really helpful if it guides the user through all the possible options. So add this one.
Diffstat (limited to 'notmuch-setup.c')
-rw-r--r--notmuch-setup.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/notmuch-setup.c b/notmuch-setup.c
index 622bbaa6..955deb7e 100644
--- a/notmuch-setup.c
+++ b/notmuch-setup.c
@@ -99,6 +99,8 @@ notmuch_setup_command (unused (void *ctx),
GPtrArray *other_emails;
unsigned int i;
int is_new;
+ const char **new_tags;
+ size_t new_tags_len;
#define prompt(format, ...) \
do { \
@@ -159,6 +161,40 @@ notmuch_setup_command (unused (void *ctx),
notmuch_config_set_database_path (config, absolute_path);
}
+ new_tags = notmuch_config_get_new_tags (config, &new_tags_len);
+
+ printf ("Tags to apply to all new messages (separated by spaces) [");
+
+ for (i = 0; i < new_tags_len; i++) {
+ if (i != 0)
+ printf (" ");
+ printf ("%s", new_tags[i]);
+ }
+
+ prompt ("]: ");
+
+ if (strlen (response)) {
+ GPtrArray *tags = g_ptr_array_new ();
+ char *tag = response;
+ char *space;
+
+ while (tag && *tag) {
+ space = strchr (tag, ' ');
+ if (space)
+ g_ptr_array_add (tags, talloc_strndup (ctx, tag, space - tag));
+ else
+ g_ptr_array_add (tags, talloc_strdup (ctx, tag));
+ tag = space;
+ while (tag && *tag == ' ')
+ tag++;
+ }
+
+ notmuch_config_set_new_tags (config, (const char **) tags->pdata,
+ tags->len);
+
+ g_ptr_array_free (tags, TRUE);
+ }
+
if (! notmuch_config_save (config)) {
if (is_new)
welcome_message_post_setup ();