revert: Removed top level --stderr= option

While looked good on paper, its attempted use caused confusion, complexity,
and potential for information leak when passed through wrapper scripts.
For slimmer code and to lessen demand for maintenance/support the set of
commits which added top level --stderr= option is now reverted.
This commit is contained in:
Tomi Ollila 2013-05-31 22:10:31 +03:00 committed by David Bremner
parent eb7d096edc
commit 8d863c9e87
5 changed files with 0 additions and 54 deletions

5
NEWS
View file

@ -35,11 +35,6 @@ Top level option to specify configuration file
It's now possible to specify the configuration file to use on the
command line using the `notmuch --config=FILE` option.
Top level option to redirect writes to stderr
With `notmuch --stderr=FILE` all writes to stderr are redirected to
the specified file. If FILE is '-', stderr is redirected to stdout.
Deprecated commands "part" and "search-tags" are removed.
Bash command-line completion

View file

@ -76,14 +76,7 @@ Print the installed version of notmuch, and exit.
Specify the configuration file to use. This overrides any
configuration file specified by ${NOTMUCH_CONFIG}.
.RE
.RS 4
.TP 4
.B \-\-stderr=FILE
Redirect all writes to stderr to the specified file.
If FILE is '-', stderr is redirected to stdout.
.RE
.SH COMMANDS

View file

@ -54,7 +54,6 @@ typedef GMimeCipherContext notmuch_crypto_context_t;
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <signal.h>

View file

@ -238,32 +238,6 @@ notmuch_command (notmuch_config_t *config,
return 0;
}
static int
redirect_stderr (const char * stderr_file)
{
if (strcmp (stderr_file, "-") == 0) {
if (dup2 (STDOUT_FILENO, STDERR_FILENO) < 0) {
perror ("dup2");
return 1;
}
} else {
int fd = open (stderr_file, O_WRONLY|O_CREAT|O_TRUNC, 0666);
if (fd < 0) {
fprintf (stderr, "Error: Cannot redirect stderr to '%s': %s\n",
stderr_file, strerror (errno));
return 1;
}
if (fd != STDERR_FILENO) {
if (dup2 (fd, STDERR_FILENO) < 0) {
perror ("dup2");
return 1;
}
close (fd);
}
}
return 0;
}
int
main (int argc, char *argv[])
{
@ -272,7 +246,6 @@ main (int argc, char *argv[])
const char *command_name = NULL;
command_t *command;
char *config_file_name = NULL;
char *stderr_file = NULL;
notmuch_config_t *config;
notmuch_bool_t print_help=FALSE, print_version=FALSE;
int opt_index;
@ -282,7 +255,6 @@ main (int argc, char *argv[])
{ NOTMUCH_OPT_BOOLEAN, &print_help, "help", 'h', 0 },
{ NOTMUCH_OPT_BOOLEAN, &print_version, "version", 'v', 0 },
{ NOTMUCH_OPT_STRING, &config_file_name, "config", 'c', 0 },
{ NOTMUCH_OPT_STRING, &stderr_file, "stderr", '\0', 0 },
{ 0, 0, 0, 0, 0 }
};
@ -304,10 +276,6 @@ main (int argc, char *argv[])
return 1;
}
if (stderr_file && redirect_stderr (stderr_file) != 0) {
/* error already printed */
return 1;
}
if (print_help)
return notmuch_help_command (NULL, argc - 1, &argv[1]);

View file

@ -9,13 +9,4 @@ test_expect_success 'notmuch help' 'notmuch help'
test_expect_success 'notmuch help tag' 'notmuch help tag'
test_expect_success 'notmuch --version' 'notmuch --version'
test_begin_subtest "notmuch --stderr=stderr help %"
notmuch --stderr=stderr help %
test_expect_equal "$(cat stderr)" "
Sorry, % is not a known command. There's not much I can do to help."
test_begin_subtest "notmuch --stderr=- help %"
test_expect_equal "$(notmuch --stderr=- help %)" "
Sorry, % is not a known command. There's not much I can do to help."
test_done