Some users may very often want to imap-send messages to a folder other than the default set in the config. Add a command line argument for the same. Signed-off-by: Aditya Garg <gargaditya08@xxxxxxxx> --- Documentation/config/imap.adoc | 5 +++-- Documentation/git-imap-send.adoc | 5 +++++ imap-send.c | 7 +++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Documentation/config/imap.adoc b/Documentation/config/imap.adoc index 24e88228d0..829d9e0bac 100644 --- a/Documentation/config/imap.adoc +++ b/Documentation/config/imap.adoc @@ -1,7 +1,8 @@ imap.folder:: The folder to drop the mails into, which is typically the Drafts - folder. For example: "INBOX.Drafts", "INBOX/Drafts" or - "[Gmail]/Drafts". Required. + folder. For example: 'INBOX.Drafts', 'INBOX/Drafts' or + '[Gmail]/Drafts'. Required if `--folder` argument is not used. If + set and `--folder` is also used, `--folder` will be preferred. imap.tunnel:: Command used to set up a tunnel to the IMAP server through which diff --git a/Documentation/git-imap-send.adoc b/Documentation/git-imap-send.adoc index c3a46070ac..de3613928f 100644 --- a/Documentation/git-imap-send.adoc +++ b/Documentation/git-imap-send.adoc @@ -37,6 +37,11 @@ OPTIONS --quiet:: Be quiet. +-f <folder>:: +--folder <folder>:: + Specify the folder in which the emails have to saved. + For example: `--folder [Gmail]/Drafts` or `-f INBOX/Drafts`. + --curl:: Use libcurl to communicate with the IMAP server, unless tunneling into it. Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND diff --git a/imap-send.c b/imap-send.c index 87abfd15f3..e062758198 100644 --- a/imap-send.c +++ b/imap-send.c @@ -46,12 +46,14 @@ static int verbosity; static int use_curl = USE_CURL_DEFAULT; +static char *opt_folder = NULL; static const char * const imap_send_usage[] = { "git imap-send [-v] [-q] [--[no-]curl] < <mbox>", NULL }; static struct option imap_send_options[] = { OPT__VERBOSITY(&verbosity), OPT_BOOL(0, "curl", &use_curl, "use libcurl to communicate with the IMAP server"), + OPT_STRING('f', "folder", &opt_folder, "folder", "specify the IMAP folder"), OPT_END() }; @@ -1762,6 +1764,11 @@ int cmd_main(int argc, const char **argv) argc = parse_options(argc, (const char **)argv, "", imap_send_options, imap_send_usage, 0); + if (opt_folder) { + free(server.folder); + server.folder = xstrdup(opt_folder); + } + if (argc) usage_with_options(imap_send_usage, imap_send_options); -- 2.43.0