[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] tools/xc: handle tty output differently in stdiostream_progress
# HG changeset patch # User Olaf Hering <olaf@xxxxxxxxx> # Date 1360935131 0 # Node ID e7d9bac5c11d3f87e34b2272c1cda4601c9ba36f # Parent 8285d20a6f5b303208ae0c489c4e651fa67ddc95 tools/xc: handle tty output differently in stdiostream_progress If the output goes to a tty, rewind the cursor and print everything in a single line as it was done up to now. If the output goes to a file or pipe print a newline after each progress output. This will fix logging of progress messages from xc_save to xend.log. To support XTL_STDIOSTREAM_SHOW_PID or XTL_STDIOSTREAM_SHOW_DATE print the output via vmessage if the output is not a tty. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- diff -r 8285d20a6f5b -r e7d9bac5c11d tools/libxc/xtl_logger_stdio.c --- a/tools/libxc/xtl_logger_stdio.c Fri Feb 15 13:32:11 2013 +0000 +++ b/tools/libxc/xtl_logger_stdio.c Fri Feb 15 13:32:11 2013 +0000 @@ -81,6 +81,17 @@ static void stdiostream_vmessage(xentool fflush(lg->f); } +static void stdiostream_message(struct xentoollog_logger *logger_in, + xentoollog_level level, + const char *context, + const char *format, ...) +{ + va_list al; + va_start(al,format); + stdiostream_vmessage(logger_in, level, -1, context, format, al); + va_end(al); +} + static void stdiostream_progress(struct xentoollog_logger *logger_in, const char *context, const char *doing_what, int percent, @@ -105,11 +116,18 @@ static void stdiostream_progress(struct if (this_level < lg->min_level) return; + lg->progress_last_percent = percent; + + if (isatty(fileno(lg->f)) <= 0) { + stdiostream_message(logger_in, this_level, context, + "%s: %lu/%lu %3d%%", + doing_what, done, total, percent); + return; + } + if (lg->progress_erase_len) putc('\r', lg->f); - lg->progress_last_percent = percent; - newpel = fprintf(lg->f, "%s%s" "%s: %lu/%lu %3d%%%s", context?context:"", context?": ":"", doing_what, done, total, percent, _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |