]> git.ipfire.org Git - thirdparty/git.git/commitdiff
imap-send: improve error messages with configuration hints
authorJörg Thalheim <joerg@thalheim.io>
Fri, 20 Jun 2025 15:56:14 +0000 (17:56 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Jun 2025 21:14:44 +0000 (14:14 -0700)
Replace basic error messages with more helpful ones that guide users
on how to resolve configuration issues. When imap.host or imap.folder
are missing, provide the exact git config commands needed to fix the
problem, along with examples of typical values.

Use the advise() API to display hints in a multi-line format with
proper "hint:" prefixes for each line.

Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
imap-send.c

index 4b63d9ca41782149d5aa283dfde8f7bd36836f63..f5a656ac71dc2db06e087f4bfce486418724284e 100644 (file)
@@ -25,6 +25,7 @@
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
 #include "git-compat-util.h"
+#include "advice.h"
 #include "config.h"
 #include "credential.h"
 #include "gettext.h"
@@ -1804,7 +1805,9 @@ int cmd_main(int argc, const char **argv)
 
        if (!server.host) {
                if (!server.tunnel) {
-                       fprintf(stderr, "no IMAP host specified\n");
+                       error(_("no IMAP host specified"));
+                       advise(_("set the IMAP host with 'git config imap.host <host>'.\n"
+                                "(e.g., 'git config imap.host imaps://imap.example.com')"));
                        ret = 1;
                        goto out;
                }
@@ -1824,7 +1827,9 @@ int cmd_main(int argc, const char **argv)
        }
 
        if (!server.folder) {
-               fprintf(stderr, "no IMAP folder specified\n");
+               error(_("no IMAP folder specified"));
+               advise(_("set the target folder with 'git config imap.folder <folder>'.\n"
+                        "(e.g., 'git config imap.folder Drafts')"));
                ret = 1;
                goto out;
        }