mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-23 01:44:52 +01:00
notmuch config: Provide support for querying non-standard configuration values.
We might as well be general here, and allow the "notmuch config" command to query any stored value from the configuration file, (whether or not the rest of the code actually knows anything about that value).
This commit is contained in:
parent
b9eac48c22
commit
49d90ede87
1 changed files with 31 additions and 4 deletions
|
@ -566,7 +566,7 @@ int
|
||||||
notmuch_config_command (void *ctx, int argc, char *argv[])
|
notmuch_config_command (void *ctx, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
notmuch_config_t *config;
|
notmuch_config_t *config;
|
||||||
const char *item;
|
char *item;
|
||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
fprintf (stderr, "Error: notmuch config requires two arguments.\n");
|
fprintf (stderr, "Error: notmuch config requires two arguments.\n");
|
||||||
|
@ -606,9 +606,36 @@ notmuch_config_command (void *ctx, int argc, char *argv[])
|
||||||
for (i = 0; i < length; i++)
|
for (i = 0; i < length; i++)
|
||||||
printf ("%s\n", tags[i]);
|
printf ("%s\n", tags[i]);
|
||||||
} else {
|
} else {
|
||||||
fprintf (stderr, "Unknown configuration item: %s\n",
|
char **value;
|
||||||
argv[1]);
|
size_t i, length;
|
||||||
return 1;
|
char *group, *period, *key;
|
||||||
|
|
||||||
|
group = item;
|
||||||
|
|
||||||
|
period = index (item, '.');
|
||||||
|
if (period == NULL || *(period+1) == '\0') {
|
||||||
|
fprintf (stderr,
|
||||||
|
"Invalid configuration name: %s\n"
|
||||||
|
"(Should be of the form <section>.<item>)\n", item);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*period = '\0';
|
||||||
|
key = period + 1;
|
||||||
|
|
||||||
|
value = g_key_file_get_string_list (config->key_file,
|
||||||
|
group, key,
|
||||||
|
&length, NULL);
|
||||||
|
if (value == NULL) {
|
||||||
|
fprintf (stderr, "Unknown configuration item: %s.%s\n",
|
||||||
|
group, key);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < length; i++)
|
||||||
|
printf ("%s\n", value[i]);
|
||||||
|
|
||||||
|
free (value);
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_config_close (config);
|
notmuch_config_close (config);
|
||||||
|
|
Loading…
Reference in a new issue