mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
cli: Be more helpful when .notmuch-config does not exist
Previously, if the user ran any subcommand that required a configuration (e.g., notmuch new) but didn't have a configuration, notmuch would give the rather un-friendly and un-actionable message Error reading configuration file .notmuch-config: No such file or directory Since this condition is expected for new users, this patch adds specific handling for the file-not-found case to give a message that is friendly and actionable.
This commit is contained in:
parent
ef5e66ae8e
commit
3d39d346d7
2 changed files with 22 additions and 10 deletions
|
@ -283,16 +283,22 @@ notmuch_config_open (void *ctx,
|
||||||
G_KEY_FILE_KEEP_COMMENTS,
|
G_KEY_FILE_KEEP_COMMENTS,
|
||||||
&error))
|
&error))
|
||||||
{
|
{
|
||||||
/* If create_new is true, then the caller is prepared for a
|
if (error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT) {
|
||||||
* default configuration file in the case of FILE NOT
|
/* If create_new is true, then the caller is prepared for a
|
||||||
* FOUND. Otherwise, any read failure is an error.
|
* default configuration file in the case of FILE NOT
|
||||||
*/
|
* FOUND.
|
||||||
if (create_new &&
|
*/
|
||||||
error->domain == G_FILE_ERROR &&
|
if (create_new) {
|
||||||
error->code == G_FILE_ERROR_NOENT)
|
g_error_free (error);
|
||||||
{
|
config->is_new = TRUE;
|
||||||
g_error_free (error);
|
} else {
|
||||||
config->is_new = TRUE;
|
fprintf (stderr, "Configuration file %s not found.\n"
|
||||||
|
"Try running 'notmuch setup' to create a configuration.\n",
|
||||||
|
config->filename);
|
||||||
|
talloc_free (config);
|
||||||
|
g_error_free (error);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,6 +3,12 @@
|
||||||
test_description='"notmuch setup"'
|
test_description='"notmuch setup"'
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
test_begin_subtest "Notmuch new without a config suggests notmuch setup"
|
||||||
|
output=$(notmuch --config=new-notmuch-config new 2>&1)
|
||||||
|
test_expect_equal "$output" "\
|
||||||
|
Configuration file new-notmuch-config not found.
|
||||||
|
Try running 'notmuch setup' to create a configuration."
|
||||||
|
|
||||||
test_begin_subtest "Create a new config interactively"
|
test_begin_subtest "Create a new config interactively"
|
||||||
notmuch --config=new-notmuch-config > /dev/null <<EOF
|
notmuch --config=new-notmuch-config > /dev/null <<EOF
|
||||||
Test Suite
|
Test Suite
|
||||||
|
|
Loading…
Reference in a new issue