Browse Source

don't insert unnecessary linebreaks upon PassCmd invocation

the PassCmd will be typically non-interactive (or it will use a gui
password agent), so starting a new line just makes the progress counter
uglier. so make it configurable and default to no line break.
wip/server-refactor v1.2.0
Oswald Buddenhagen 10 years ago
parent
commit
95276cd967
  1. 9
      src/drv_imap.c
  2. 5
      src/mbsync.1

9
src/drv_imap.c

@ -1723,13 +1723,18 @@ ensure_user( imap_server_conf_t *srvc )
static const char * static const char *
ensure_password( imap_server_conf_t *srvc ) ensure_password( imap_server_conf_t *srvc )
{ {
if (srvc->pass_cmd) { char *cmd = srvc->pass_cmd;
if (cmd) {
FILE *fp; FILE *fp;
int ret; int ret;
char buffer[80]; char buffer[80];
if (*cmd == '+') {
flushn(); flushn();
if (!(fp = popen( srvc->pass_cmd, "r" ))) { cmd++;
}
if (!(fp = popen( cmd, "r" ))) {
pipeerr: pipeerr:
sys_error( "Skipping account %s, password command failed", srvc->name ); sys_error( "Skipping account %s, password command failed", srvc->name );
return 0; return 0;

5
src/mbsync.1

@ -288,11 +288,14 @@ If neither a password nor a password command is specified in the
configuration file, \fBmbsync\fR will prompt you for a password. configuration file, \fBmbsync\fR will prompt you for a password.
.. ..
.TP .TP
\fBPassCmd\fR \fIcommand\fR \fBPassCmd\fR [\fB+\fR]\fIcommand\fR
Specify a shell command to obtain a password rather than specifying a Specify a shell command to obtain a password rather than specifying a
password directly. This allows you to use password files and agents. password directly. This allows you to use password files and agents.
The command must produce exactly one line on stdout; the trailing newline is The command must produce exactly one line on stdout; the trailing newline is
optional. optional.
Prepend \fB+\fR to the command to indicate that it produces TTY output
(e.g., a decryption password prompt); failure to do so will merely produce
messier output.
.. ..
.TP .TP
\fBTunnel\fR \fIcommand\fR \fBTunnel\fR \fIcommand\fR

Loading…
Cancel
Save