mirror of
https://github.com/mirror/wget.git
synced 2025-03-29 05:20:18 +08:00
progress bar: Allow display on stderr alongwith -o
This commit causes the --show-progress option to print the progress bar to stderr even when a logfile was explicitly provided on the command line. Such a combination allows a user to log the output of Wget while simultaneously keeping track of the download status.
This commit is contained in:
parent
a7e9a05a89
commit
8705e27e20
@ -774,12 +774,15 @@ use @samp{--progress=bar:force:noscroll}.
|
|||||||
Force wget to display the progress bar in any verbosity.
|
Force wget to display the progress bar in any verbosity.
|
||||||
|
|
||||||
By default, wget only displays the progress bar in verbose mode. One may
|
By default, wget only displays the progress bar in verbose mode. One may
|
||||||
however want wget to display the progress bar on screen in conjunction with
|
however, want wget to display the progress bar on screen in conjunction with
|
||||||
any other verbosity modes like @samp{--no-verbose} or @samp{--quiet}. This
|
any other verbosity modes like @samp{--no-verbose} or @samp{--quiet}. This
|
||||||
is often a desired a property when invoking wget to download several small/large
|
is often a desired a property when invoking wget to download several small/large
|
||||||
files. In such a case, wget could simply be invoked with this parameter to get
|
files. In such a case, wget could simply be invoked with this parameter to get
|
||||||
a much cleaner output on the screen.
|
a much cleaner output on the screen.
|
||||||
|
|
||||||
|
This option will also force the progress bar to be printed to @file{stderr} when
|
||||||
|
used alongside the @samp{--logfile} option.
|
||||||
|
|
||||||
@item -N
|
@item -N
|
||||||
@itemx --timestamping
|
@itemx --timestamping
|
||||||
Turn on time-stamping. @xref{Time-Stamping}, for details.
|
Turn on time-stamping. @xref{Time-Stamping}, for details.
|
||||||
|
22
src/init.c
22
src/init.c
@ -104,6 +104,7 @@ CMD_DECLARE (cmd_spec_htmlify);
|
|||||||
CMD_DECLARE (cmd_spec_mirror);
|
CMD_DECLARE (cmd_spec_mirror);
|
||||||
CMD_DECLARE (cmd_spec_prefer_family);
|
CMD_DECLARE (cmd_spec_prefer_family);
|
||||||
CMD_DECLARE (cmd_spec_progress);
|
CMD_DECLARE (cmd_spec_progress);
|
||||||
|
CMD_DECLARE (cmd_spec_progressdisp);
|
||||||
CMD_DECLARE (cmd_spec_recursive);
|
CMD_DECLARE (cmd_spec_recursive);
|
||||||
CMD_DECLARE (cmd_spec_regex_type);
|
CMD_DECLARE (cmd_spec_regex_type);
|
||||||
CMD_DECLARE (cmd_spec_restrict_file_names);
|
CMD_DECLARE (cmd_spec_restrict_file_names);
|
||||||
@ -275,7 +276,7 @@ static const struct {
|
|||||||
#endif
|
#endif
|
||||||
{ "serverresponse", &opt.server_response, cmd_boolean },
|
{ "serverresponse", &opt.server_response, cmd_boolean },
|
||||||
{ "showalldnsentries", &opt.show_all_dns_entries, cmd_boolean },
|
{ "showalldnsentries", &opt.show_all_dns_entries, cmd_boolean },
|
||||||
{ "showprogress", &opt.show_progress, cmd_boolean },
|
{ "showprogress", &opt.show_progress, cmd_spec_progressdisp },
|
||||||
{ "spanhosts", &opt.spanhost, cmd_boolean },
|
{ "spanhosts", &opt.spanhost, cmd_boolean },
|
||||||
{ "spider", &opt.spider, cmd_boolean },
|
{ "spider", &opt.spider, cmd_boolean },
|
||||||
{ "startpos", &opt.start_pos, cmd_bytes },
|
{ "startpos", &opt.start_pos, cmd_bytes },
|
||||||
@ -434,7 +435,7 @@ defaults (void)
|
|||||||
|
|
||||||
/* Use a negative value to mark the absence of --start-pos option */
|
/* Use a negative value to mark the absence of --start-pos option */
|
||||||
opt.start_pos = -1;
|
opt.start_pos = -1;
|
||||||
opt.show_progress = false;
|
opt.show_progress = -1;
|
||||||
opt.noscroll = false;
|
opt.noscroll = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1572,6 +1573,22 @@ cmd_spec_useragent (const char *com, const char *val, void *place_ignored _GL_UN
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The --show-progress option is not a cmd_boolean since we need to keep track
|
||||||
|
* of whether the user explicitly requested the option or not. -1 means
|
||||||
|
* uninitialized. */
|
||||||
|
static bool
|
||||||
|
cmd_spec_progressdisp (const char *com, const char *val, void *place _GL_UNUSED)
|
||||||
|
{
|
||||||
|
bool flag;
|
||||||
|
if (cmd_boolean (com, val, &flag))
|
||||||
|
{
|
||||||
|
opt.show_progress = flag;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* The "verbose" option cannot be cmd_boolean because the variable is
|
/* The "verbose" option cannot be cmd_boolean because the variable is
|
||||||
not bool -- it's of type int (-1 means uninitialized because of
|
not bool -- it's of type int (-1 means uninitialized because of
|
||||||
some random hackery for disallowing -q -v). */
|
some random hackery for disallowing -q -v). */
|
||||||
@ -1583,6 +1600,7 @@ cmd_spec_verbose (const char *com, const char *val, void *place_ignored _GL_UNUS
|
|||||||
if (cmd_boolean (com, val, &flag))
|
if (cmd_boolean (com, val, &flag))
|
||||||
{
|
{
|
||||||
opt.verbose = flag;
|
opt.verbose = flag;
|
||||||
|
opt.show_progress = -1;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
16
src/log.c
16
src/log.c
@ -310,6 +310,14 @@ get_log_fp (void)
|
|||||||
return stderr;
|
return stderr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FILE *
|
||||||
|
get_progress_fp (void)
|
||||||
|
{
|
||||||
|
if (opt.show_progress == true)
|
||||||
|
return stderr;
|
||||||
|
return get_log_fp();
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns the file descriptor for the secondary log file. This is
|
/* Returns the file descriptor for the secondary log file. This is
|
||||||
WARCLOGFP, except if called before log_init, in which case it
|
WARCLOGFP, except if called before log_init, in which case it
|
||||||
returns stderr. This is useful in case someone calls a logging
|
returns stderr. This is useful in case someone calls a logging
|
||||||
@ -345,8 +353,14 @@ logputs (enum log_options o, const char *s)
|
|||||||
FILE *warcfp;
|
FILE *warcfp;
|
||||||
|
|
||||||
check_redirect_output ();
|
check_redirect_output ();
|
||||||
if ((fp = get_log_fp ()) == NULL)
|
if (o == LOG_PROGRESS)
|
||||||
|
fp = get_progress_fp ();
|
||||||
|
else
|
||||||
|
fp = get_log_fp ();
|
||||||
|
|
||||||
|
if (fp == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
warcfp = get_warc_log_fp ();
|
warcfp = get_warc_log_fp ();
|
||||||
CHECK_VERBOSE (o);
|
CHECK_VERBOSE (o);
|
||||||
|
|
||||||
|
@ -1272,9 +1272,6 @@ main (int argc, char **argv)
|
|||||||
if (opt.verbose == -1)
|
if (opt.verbose == -1)
|
||||||
opt.verbose = !opt.quiet;
|
opt.verbose = !opt.quiet;
|
||||||
|
|
||||||
if (opt.verbose == 1)
|
|
||||||
opt.show_progress = true;
|
|
||||||
|
|
||||||
/* Sanity checks. */
|
/* Sanity checks. */
|
||||||
if (opt.verbose && opt.quiet)
|
if (opt.verbose && opt.quiet)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ struct options
|
|||||||
char **no_proxy;
|
char **no_proxy;
|
||||||
char *base_href;
|
char *base_href;
|
||||||
char *progress_type; /* progress indicator type. */
|
char *progress_type; /* progress indicator type. */
|
||||||
bool show_progress; /* Show only the progress bar */
|
int show_progress; /* Show only the progress bar */
|
||||||
bool noscroll; /* Don't scroll the filename in the progressbar */
|
bool noscroll; /* Don't scroll the filename in the progressbar */
|
||||||
char *proxy_user; /*oli*/
|
char *proxy_user; /*oli*/
|
||||||
char *proxy_passwd;
|
char *proxy_passwd;
|
||||||
|
@ -1202,7 +1202,7 @@ bar_set_params (char *params)
|
|||||||
} while ((param = strtok (NULL, ":")) != NULL);
|
} while ((param = strtok (NULL, ":")) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((opt.lfilename
|
if (((opt.lfilename && opt.show_progress != 1)
|
||||||
#ifdef HAVE_ISATTY
|
#ifdef HAVE_ISATTY
|
||||||
/* The progress bar doesn't make sense if the output is not a
|
/* The progress bar doesn't make sense if the output is not a
|
||||||
TTY -- when logging to file, it is better to review the
|
TTY -- when logging to file, it is better to review the
|
||||||
|
@ -1812,7 +1812,7 @@ determine_screen_width (void)
|
|||||||
int fd;
|
int fd;
|
||||||
struct winsize wsz;
|
struct winsize wsz;
|
||||||
|
|
||||||
if (opt.lfilename != NULL)
|
if (opt.lfilename != NULL && opt.show_progress != 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fd = fileno (stderr);
|
fd = fileno (stderr);
|
||||||
|
Loading…
Reference in New Issue
Block a user