diff options
author | Bernhard Reiter <ockham@raz.or.at> | 2014-11-05 17:29:21 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-11-06 03:24:27 +0300 |
commit | f1a35295c2b66d2501f034d864afb2c5d8bb0e08 (patch) | |
tree | e958702317fb98c74640d6e000909cd766e0e596 | |
parent | f745acb028ee8f7dcd1c8f10127b8feeaa255cf7 (diff) |
imap-send: use parse options API to determine verbosity
The -v/-q options were sort-of supported but without using the
parse-options API, and were not documented.
Signed-off-by: Bernhard Reiter <ockham@raz.or.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Documentation/git-imap-send.txt | 14 | ||||
-rw-r--r-- | imap-send.c | 28 |
2 files changed, 31 insertions, 11 deletions
diff --git a/Documentation/git-imap-send.txt b/Documentation/git-imap-send.txt index c7c0d21429..0897131fca 100644 --- a/Documentation/git-imap-send.txt +++ b/Documentation/git-imap-send.txt @@ -9,7 +9,7 @@ git-imap-send - Send a collection of patches from stdin to an IMAP folder SYNOPSIS -------- [verse] -'git imap-send' +'git imap-send' [-v] [-q] DESCRIPTION @@ -26,6 +26,18 @@ Typical usage is something like: git format-patch --signoff --stdout --attach origin | git imap-send +OPTIONS +------- + +-v:: +--verbose:: + Be verbose. + +-q:: +--quiet:: + Be quiet. + + CONFIGURATION ------------- diff --git a/imap-send.c b/imap-send.c index 70bcc7a4e5..7f9d30effd 100644 --- a/imap-send.c +++ b/imap-send.c @@ -26,11 +26,19 @@ #include "credential.h" #include "exec_cmd.h" #include "run-command.h" +#include "parse-options.h" #ifdef NO_OPENSSL typedef void *SSL; #endif -static const char imap_send_usage[] = "git imap-send < <mbox>"; +static int verbosity; + +static const char * const imap_send_usage[] = { "git imap-send [-v] [-q] < <mbox>", NULL }; + +static struct option imap_send_options[] = { + OPT__VERBOSITY(&verbosity), + OPT_END() +}; #undef DRV_OK #define DRV_OK 0 @@ -38,8 +46,6 @@ static const char imap_send_usage[] = "git imap-send < <mbox>"; #define DRV_BOX_BAD -2 #define DRV_STORE_BAD -3 -static int Verbose, Quiet; - __attribute__((format (printf, 1, 2))) static void imap_info(const char *, ...); __attribute__((format (printf, 1, 2))) @@ -418,7 +424,7 @@ static int buffer_gets(struct imap_buffer *b, char **s) if (b->buf[b->offset + 1] == '\n') { b->buf[b->offset] = 0; /* terminate the string */ b->offset += 2; /* next line */ - if (Verbose) + if (0 < verbosity) puts(*s); return 0; } @@ -433,7 +439,7 @@ static void imap_info(const char *msg, ...) { va_list va; - if (!Quiet) { + if (0 <= verbosity) { va_start(va, msg); vprintf(msg, va); va_end(va); @@ -445,7 +451,7 @@ static void imap_warn(const char *msg, ...) { va_list va; - if (Quiet < 2) { + if (-2 < verbosity) { va_start(va, msg); vfprintf(stderr, msg, va); va_end(va); @@ -522,7 +528,7 @@ static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx, cmd->tag, cmd->cmd, cmd->cb.dlen, CAP(LITERALPLUS) ? "+" : ""); - if (Verbose) { + if (0 < verbosity) { if (imap->num_in_progress) printf("(%d in progress) ", imap->num_in_progress); if (!starts_with(cmd->cmd, "LOGIN")) @@ -1352,12 +1358,14 @@ int main(int argc, char **argv) git_setup_gettext(); - if (argc != 1) - usage(imap_send_usage); - setup_git_directory_gently(&nongit_ok); git_imap_config(); + argc = parse_options(argc, (const char **)argv, "", imap_send_options, imap_send_usage, 0); + + if (argc) + usage_with_options(imap_send_usage, imap_send_options); + if (!server.port) server.port = server.use_ssl ? 993 : 143; |