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>
maint
Bernhard Reiter 2014-11-05 15:29:21 +01:00 committed by Junio C Hamano
parent f745acb028
commit f1a35295c2
2 changed files with 31 additions and 11 deletions

View File

@ -9,7 +9,7 @@ git-imap-send - Send a collection of patches from stdin to an IMAP folder
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
'git imap-send' 'git imap-send' [-v] [-q]




DESCRIPTION DESCRIPTION
@ -26,6 +26,18 @@ Typical usage is something like:
git format-patch --signoff --stdout --attach origin | git imap-send git format-patch --signoff --stdout --attach origin | git imap-send




OPTIONS
-------

-v::
--verbose::
Be verbose.

-q::
--quiet::
Be quiet.


CONFIGURATION CONFIGURATION
------------- -------------



View File

@ -26,11 +26,19 @@
#include "credential.h" #include "credential.h"
#include "exec_cmd.h" #include "exec_cmd.h"
#include "run-command.h" #include "run-command.h"
#include "parse-options.h"
#ifdef NO_OPENSSL #ifdef NO_OPENSSL
typedef void *SSL; typedef void *SSL;
#endif #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 #undef DRV_OK
#define DRV_OK 0 #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_BOX_BAD -2
#define DRV_STORE_BAD -3 #define DRV_STORE_BAD -3


static int Verbose, Quiet;

__attribute__((format (printf, 1, 2))) __attribute__((format (printf, 1, 2)))
static void imap_info(const char *, ...); static void imap_info(const char *, ...);
__attribute__((format (printf, 1, 2))) __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') { if (b->buf[b->offset + 1] == '\n') {
b->buf[b->offset] = 0; /* terminate the string */ b->buf[b->offset] = 0; /* terminate the string */
b->offset += 2; /* next line */ b->offset += 2; /* next line */
if (Verbose) if (0 < verbosity)
puts(*s); puts(*s);
return 0; return 0;
} }
@ -433,7 +439,7 @@ static void imap_info(const char *msg, ...)
{ {
va_list va; va_list va;


if (!Quiet) { if (0 <= verbosity) {
va_start(va, msg); va_start(va, msg);
vprintf(msg, va); vprintf(msg, va);
va_end(va); va_end(va);
@ -445,7 +451,7 @@ static void imap_warn(const char *msg, ...)
{ {
va_list va; va_list va;


if (Quiet < 2) { if (-2 < verbosity) {
va_start(va, msg); va_start(va, msg);
vfprintf(stderr, msg, va); vfprintf(stderr, msg, va);
va_end(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, cmd->tag, cmd->cmd, cmd->cb.dlen,
CAP(LITERALPLUS) ? "+" : ""); CAP(LITERALPLUS) ? "+" : "");


if (Verbose) { if (0 < verbosity) {
if (imap->num_in_progress) if (imap->num_in_progress)
printf("(%d in progress) ", imap->num_in_progress); printf("(%d in progress) ", imap->num_in_progress);
if (!starts_with(cmd->cmd, "LOGIN")) if (!starts_with(cmd->cmd, "LOGIN"))
@ -1352,12 +1358,14 @@ int main(int argc, char **argv)


git_setup_gettext(); git_setup_gettext();


if (argc != 1)
usage(imap_send_usage);

setup_git_directory_gently(&nongit_ok); setup_git_directory_gently(&nongit_ok);
git_imap_config(); 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) if (!server.port)
server.port = server.use_ssl ? 993 : 143; server.port = server.use_ssl ? 993 : 143;