mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
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.
This commit is contained in:
parent
c63b6473ca
commit
14fb9f3c55
1 changed files with 36 additions and 0 deletions
|
@ -99,6 +99,8 @@ notmuch_setup_command (unused (void *ctx),
|
||||||
GPtrArray *other_emails;
|
GPtrArray *other_emails;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int is_new;
|
int is_new;
|
||||||
|
const char **new_tags;
|
||||||
|
size_t new_tags_len;
|
||||||
|
|
||||||
#define prompt(format, ...) \
|
#define prompt(format, ...) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -159,6 +161,40 @@ notmuch_setup_command (unused (void *ctx),
|
||||||
notmuch_config_set_database_path (config, absolute_path);
|
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 (! notmuch_config_save (config)) {
|
||||||
if (is_new)
|
if (is_new)
|
||||||
welcome_message_post_setup ();
|
welcome_message_post_setup ();
|
||||||
|
|
Loading…
Reference in a new issue