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.
-/* $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.
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
-.\" $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.
.\" 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
.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
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 .
-/* $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.
#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>
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);
}
/* 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;
lflag++;
filesize = strtoull(optarg, NULL, 0);
break;
+ case 'p':
+ prefix = optarg;
+ break;
case 'z':
zflag++;
break;
-/* $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.
#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 */
/*
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <time.h>
#include <tzfile.h>
#include <unistd.h>
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);
* 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,