]> git.cameronkatri.com Git - bsd-progress.git/commitdiff
Apply patch from PR bin/28717
authorgarbled <garbled@NetBSD.org>
Thu, 12 Jan 2006 20:33:20 +0000 (20:33 +0000)
committergarbled <garbled@NetBSD.org>
Thu, 12 Jan 2006 20:33:20 +0000 (20:33 +0000)
This adds a -e option to progress which causes the progress bar to be
sent to stderr.  This allows using progress mid-pipe, such as:
tar -cf . | progress -e bzip -1c | ssh host "cat > file"

progress.1
progress.c

index 6ed316f999d350686493210c09b5b72927bc17e1..b015e3ec5cee732c185e877fd593fb1f8ca40ffc 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: progress.1,v 1.9 2004/04/03 06:19:22 lukem Exp $
+.\"    $NetBSD: progress.1,v 1.10 2006/01/12 20:33:20 garbled Exp $
 .\"
 .\" Copyright (c) 2003,2004 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -38,7 +38,7 @@
 .Nd feed input to a command, displaying a progress bar
 .Sh SYNOPSIS
 .Nm
-.Op Fl z
+.Op Fl ez
 .Op Fl f Ar file
 .Op Fl l Ar length
 .Op Fl p Ar prefix
@@ -65,6 +65,8 @@ simply displays a count of the data and the data rate.
 .Pp
 The options are as follows:
 .Bl -tag -width XlXlengthXX
+.It Fl e
+Display progress to standard error instead of standard output.
 .It Fl f Ar file
 Read from the specified
 .Ar file
index 6e9d898ce0fc595c4516d82316ec378f160acfea..3272ba2f2660ea57362d6482bdba79c15ee7711c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: progress.c,v 1.10 2005/02/23 22:32:31 dsl Exp $ */
+/*     $NetBSD: progress.c,v 1.11 2006/01/12 20:33:20 garbled Exp $ */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: progress.c,v 1.10 2005/02/23 22:32:31 dsl Exp $");
+__RCSID("$NetBSD: progress.c,v 1.11 2006/01/12 20:33:20 garbled Exp $");
 #endif                         /* not lint */
 
 #include <sys/types.h>
@@ -73,7 +73,7 @@ static void
 usage(void)
 {
        fprintf(stderr,
-           "usage: %s [-z] [-f file] [-l length] [-p prefix] cmd [args...]\n",
+           "usage: %s [-ez] [-f file] [-l length] [-p prefix] cmd [args...]\n",
            getprogname());
        exit(1);
 }
@@ -87,7 +87,7 @@ main(int argc, char *argv[])
        pid_t pid = 0, gzippid = 0, deadpid;
        int ch, fd, outpipe[2];
        int ws, gzipstat, cmdstat;
-       int lflag = 0, zflag = 0;
+       int eflag = 0, lflag = 0, zflag = 0;
        ssize_t nr, nw, off;
        struct stat statb;
        struct ttysize ts;
@@ -99,8 +99,11 @@ main(int argc, char *argv[])
        filesize = 0;
        prefix=NULL;
 
-       while ((ch = getopt(argc, argv, "f:l:p:z")) != -1)
+       while ((ch = getopt(argc, argv, "ef:l:p:z")) != -1)
                switch (ch) {
+               case 'e':
+                       eflag++;
+                       break;
                case 'f':
                        infile = optarg;
                        break;
@@ -183,7 +186,7 @@ main(int argc, char *argv[])
        /* Initialize progressbar.c's global state */
        bytes = 0;
        progress = 1;
-       ttyout = stdout;
+       ttyout = eflag ? stderr : stdout;
 
        if (ioctl(fileno(ttyout), TIOCGSIZE, &ts) == -1) {
                ttywidth = 80;