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.
This commit is contained in:
parent
ee69168070
commit
849866f9c1
|
@ -1,4 +1,4 @@
|
|||
LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.273 $>
|
||||
LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.274 $>
|
||||
|
||||
|
||||
[Note: This file does not mention every change made to the NetBSD source tree.
|
||||
|
@ -615,3 +615,5 @@ Changes from NetBSD 1.6 to NetBSD 2.0:
|
|||
GCC: Import GCC 3.3.3-20040209. [mrg 20040210]
|
||||
sh3: Switch to GCC 3.3. [uwe 20040222]
|
||||
hpcsh: Enable building of Xhpc server for hpcsh. [uwe 20040222]
|
||||
progress(1): Allow printing custom text before (left of) the progress
|
||||
bar. [hubertf 20040309]
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 .
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue