aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhubertf <hubertf@NetBSD.org>2004-03-09 17:04:24 +0000
committerhubertf <hubertf@NetBSD.org>2004-03-09 17:04:24 +0000
commitd9415b521c515095fba42397975441dfbfb487d8 (patch)
tree731648ee58873672e9ead73fa33f3321931c48cc
parent3cac59fa5b5b8e6ebd1ec4c9a16728fcfa27cd9b (diff)
downloadbsd-progress-d9415b521c515095fba42397975441dfbfb487d8.tar.gz
bsd-progress-d9415b521c515095fba42397975441dfbfb487d8.tar.zst
bsd-progress-d9415b521c515095fba42397975441dfbfb487d8.zip
Allow custom text printed before (left of) the progress bar from progress(1):
miyu# cat openoffice-linux-1.1.0.tgz | progress -z -p 'Bytes written: ' dd of=/dev/null bs=1m Bytes written: 193 MB 13.83 MB/s 0+195211 records in and: miyu# progress -f openoffice-linux-1.1.0.tgz -z -p 'Bytes written: ' dd of=/dev/null bs=1m Bytes written: 28% |****** | 57919 KB 14.12 MB/s 00:09 ETA OK'd by lukem.
-rw-r--r--include/progressbar.h3
-rw-r--r--progress.19
-rw-r--r--progress.c12
-rw-r--r--progressbar.c9
4 files changed, 24 insertions, 9 deletions
diff --git a/include/progressbar.h b/include/progressbar.h
index b7ca63f..b8e416e 100644
--- a/include/progressbar.h
+++ b/include/progressbar.h
@@ -1,4 +1,4 @@
-/* $NetBSD: progressbar.h,v 1.3 2003/02/28 09:53:49 lukem Exp $ */
+/* $NetBSD: progressbar.h,v 1.4 2004/03/09 17:04:24 hubertf Exp $ */
/*-
* Copyright (c) 1996-2003 The NetBSD Foundation, Inc.
@@ -58,6 +58,7 @@ GLOBAL int ttywidth; /* width of tty */
GLOBAL off_t bytes; /* current # of bytes read */
GLOBAL off_t filesize; /* size of file being transferred */
GLOBAL off_t restart_point; /* offset to restart transfer */
+GLOBAL char *prefix; /* Text written left of progress bar */
#ifndef STANDALONE_PROGRESS
diff --git a/progress.1 b/progress.1
index 239e557..59a87c0 100644
--- a/progress.1
+++ b/progress.1
@@ -1,4 +1,4 @@
-.\" $NetBSD: progress.1,v 1.5 2003/02/14 15:59:18 grant Exp $
+.\" $NetBSD: progress.1,v 1.6 2004/03/09 17:04:24 hubertf Exp $
.\"
.\" Copyright (c) 2003 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -30,7 +30,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 21, 2003
+.Dd March 5, 2004
.Dt PROGRESS 1
.Os
.Sh NAME
@@ -41,6 +41,7 @@
.Op Fl z
.Op Fl f Ar file
.Op Fl l Ar length
+.Op Fl p Ar prefix
.Ar cmd
.Op Ar args ...
.Sh DESCRIPTION
@@ -72,6 +73,10 @@ instead of standard input.
Use the specified length for the time estimate, rather than attempting to
.Xr fstat 2
the input.
+.It Fl p Ar prefix
+Print the given
+.Dq prefix
+text before (left of) the progress bar.
.It Fl z
Filter the input through
.Xr gzip 1 .
diff --git a/progress.c b/progress.c
index d47e46e..eaa3314 100644
--- a/progress.c
+++ b/progress.c
@@ -1,4 +1,4 @@
-/* $NetBSD: progress.c,v 1.7 2003/02/12 00:58:34 ross Exp $ */
+/* $NetBSD: progress.c,v 1.8 2004/03/09 17:04:24 hubertf Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: progress.c,v 1.7 2003/02/12 00:58:34 ross Exp $");
+__RCSID("$NetBSD: progress.c,v 1.8 2004/03/09 17:04:24 hubertf 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] cmd [args...]\n",
+ "usage: %s [-z] [-f file] [-l length] [-p prefix] cmd [args...]\n",
getprogname());
exit(1);
}
@@ -96,8 +96,9 @@ main(int argc, char *argv[])
/* defaults: Read from stdin, 0 filesize (no completion estimate) */
fd = STDIN_FILENO;
filesize = 0;
+ prefix=NULL;
- while ((ch = getopt(argc, argv, "f:l:z")) != -1)
+ while ((ch = getopt(argc, argv, "f:l:p:z")) != -1)
switch (ch) {
case 'f':
infile = optarg;
@@ -106,6 +107,9 @@ main(int argc, char *argv[])
lflag++;
filesize = strtoull(optarg, NULL, 0);
break;
+ case 'p':
+ prefix = optarg;
+ break;
case 'z':
zflag++;
break;
diff --git a/progressbar.c b/progressbar.c
index f096ffc..9c09147 100644
--- a/progressbar.c
+++ b/progressbar.c
@@ -1,4 +1,4 @@
-/* $NetBSD: progressbar.c,v 1.4 2003/07/17 12:06:18 lukem Exp $ */
+/* $NetBSD: progressbar.c,v 1.5 2004/03/09 17:04:24 hubertf Exp $ */
/*-
* Copyright (c) 1997-2003 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: progressbar.c,v 1.4 2003/07/17 12:06:18 lukem Exp $");
+__RCSID("$NetBSD: progressbar.c,v 1.5 2004/03/09 17:04:24 hubertf Exp $");
#endif /* not lint */
/*
@@ -52,6 +52,7 @@ __RCSID("$NetBSD: progressbar.c,v 1.4 2003/07/17 12:06:18 lukem Exp $");
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <time.h>
#include <tzfile.h>
#include <unistd.h>
@@ -200,6 +201,8 @@ progressmeter(int flag)
return;
len += snprintf(buf + len, BUFLEFT, "\r");
+ if (prefix)
+ len += snprintf(buf + len, BUFLEFT, "%s", prefix);
if (filesize > 0) {
ratio = (int)((double)cursize * 100.0 / (double)filesize);
ratio = MAX(ratio, 0);
@@ -211,6 +214,8 @@ progressmeter(int flag)
* the number of stars won't exceed the buffer size
*/
barlength = MIN(sizeof(buf) - 1, ttywidth) - BAROVERHEAD;
+ if (prefix)
+ barlength -= strlen(prefix);
if (barlength > 0) {
i = barlength * ratio / 100;
len += snprintf(buf + len, BUFLEFT,