1.\" $NetBSD: progress.1,v 1.5 2003/02/14 15:59:18 grant Exp $ 2.\" 3.\" Copyright (c) 2003 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" This code is derived from software contributed to The NetBSD Foundation 7.\" by John Hawkinson. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 3. Neither the name of The NetBSD Foundation nor the names of its 18.\" contributors may be used to endorse or promote products derived 19.\" from this software without specific prior written permission. 20.\" 21.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 22.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 25.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31.\" POSSIBILITY OF SUCH DAMAGE. 32.\" 33.Dd January 21, 2003 34.Dt PROGRESS 1 35.Os 36.Sh NAME 37.Nm progress 38.Nd feed input to a command, displaying a progress bar 39.Sh SYNOPSIS 40.Nm 41.Op Fl z 42.Op Fl f Ar file 43.Op Fl l Ar length 44.Ar cmd 45.Op Ar args ... 46.Sh DESCRIPTION 47The 48.Nm 49utility opens a pipe to 50.Ar cmd 51and feeds an input stream into it, while displaying a progress bar to 52standard output. 53If no filename is specified, 54.Nm 55reads from standard input. 56Where feasible, 57.Nm 58.Xr fstat 2 Ns s 59the input to determine the length, so a time estimate can be calculated. 60.Pp 61If no length is specified or determined, 62.Nm 63simply displays a count of the data and the data rate. 64.Pp 65The options are as follows: 66.Bl -tag -width XlXlengthXX 67.It Fl f Ar file 68Read from the specified 69.Ar file 70instead of standard input. 71.It Fl l Ar length 72Use the specified length for the time estimate, rather than attempting to 73.Xr fstat 2 74the input. 75.It Fl z 76Filter the input through 77.Xr gzip 1 . 78If 79.Fl f 80is specified, calculate the length using 81.Ic gzip -l . 82.El 83.Sh EXIT STATUS 84.Nm 85exits 0 on success. 86.Sh EXAMPLES 87The command 88.Ic progress -zf file.tar.gz tar xf - 89will extract the 90.Pa file.tar.gz 91displaying the progress bar as time passes: 92.Bd -literal 93 0% | | 0 0.00 KB/s --:-- ETA 94 40% |********** | 273 KB 271.95 KB/s 00:01 ETA 95 81% |************************* | 553 KB 274.61 KB/s 00:00 ETA 96100% |*********************************| 680 KB 264.59 KB/s 00:00 ETA 97.Ed 98.Pp 99If it is preferred to monitor the progress of the decompression 100process (unlikely), then 101.Ic progress -f file.tar.gz tar zxf - 102could be used. 103.Sh SEE ALSO 104.Xr ftp 1 105.Sh HISTORY 106.Nm 107first appeared in 108.Nx 1.6.1 . 109The dynamic progress bar display code is part of 110.Xr ftp 1 . 111.Sh AUTHORS 112.Nm 113was written by 114.An John Hawkinson 115.Aq jhawk@NetBSD.org . 116.Xr ftp 1 Ns 's 117dynamic progress bar was written by Luke Mewburn. 118.Sh BUGS 119Since the progress bar is displayed asynchronously, it may be 120difficult to read some error messages, both those produced by the 121pipeline, as well as those produced by 122.Nm 123itself. 124