1 .\" Copyright (c) 2013-2016 Devin Teske
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .Nd stream data from stdin or multiple paths with dialog progress view
58 provides a dialog progress view, allowing a user to see current throughput rate
59 and total data transferred for one or more streams.
63 utility has two main modes for processing input.
65 The default input mode, without
68 reads bytes from standard input.
69 A label for the data must be provided.
71 The secondary input mode, with
75 .Pq up to 2047 or Dq ARG_MAX/2-1 ,
78 Data read in either mode is either thrown away
80 sent to a spawned instance of the program specified via
82 or sent to a unique file specified by
87 progress is displayed using one of
93 .Xr Xdialog 1 Pq Pa ports/x11/xdialog
96 The following options are available:
97 .Bl -tag -width "-b backtitle"
101 below the file progress indicator(s).
102 .It Fl b Ar backtitle
105 on the backdrop, at top-left, behind the dialog widget.
107 .Xr Xdialog 1 Pq Pa ports/x11/xdialog ,
108 this is displayed inside the window
110 followed by a separator line.
112 Do not use the default interface of
114 but instead spawn an instance of
120 environment variable or simply
125 Print dialog prompt data to standard out and provide additional debugging on
128 Produce a short syntax usage with brief option descriptions and exit.
129 Output is produced on standard error.
131 Customize the multi-file format string used to update the status line.
132 Ignored when using either
136 which lack the ability to display the status line
137 .Pq containing bytes/rate/thread information .
140 .Dq Li %'10lli bytes read @ %'9.1f bytes/sec. [%i/%i busy/wait] .
141 This format is used when handling more than one file.
143 Customize the single-file format string used to update the status line.
144 Ignored when using either
148 which lack the ability to display the status line
149 .Pq containing bytes/rate/thread information .
152 .Dq Li %'10lli bytes read @ %'9.1f bytes/sec. .
153 This format is used when handling one file.
156 Prevent visually distracting initialization/exit routines for scripts running
161 If negative, shrink to longest label width.
164 Read lines from input instead of bytes.
167 Instead of reading bytes from standard input, read from a set of paths
168 .Pq one for each label .
169 By default, each path is processed sequentially in the order given.
172 If enabled, stop reading known-length inputs when input reaches stated length.
176 progress indicators per screen.
177 If zero, display as many as possible.
178 If negative, only display the main progress indicator.
184 The first occurrence of
189 will be replaced with the
193 Mini-progressbar size.
194 If negative, don't display mini-progressbars
195 .Pq only the large overall progress indicator is shown .
196 If zero, auto-adjust based on number of files to read.
197 When zero and only one file to read, defaults to -1.
198 When zero and more than one file to read, defaults to 17.
202 above the file progress indicator(s).
205 Simulate reading a number of bytes, divided evenly across the number of files,
206 while stepping through each percent value of each file to process.
210 .Pq to override, use Ql Fl u Ar format .
211 No data is actually read.
216 Note that if you use this option at the same time as
219 .Ql Fl b Ar backtitle ,
224 are effectively switched
225 .Pq see BUGS section below .
234 disables status line updates.
235 If negative, update the status line as fast as possible.
236 Ignored when using either
240 which lack the ability to display the status line
241 .Pq containing bytes/rate/thread information .
250 to bump the dialog width.
251 Prompts wider than the maximum width will wrap
253 .Xr Xdialog 1 Pq Pa ports/x11/xdialog ;
254 see BUGS section below.
256 Enable X11 mode by using
257 .Xr Xdialog 1 Pq Pa ports/x11/xdialog
266 and send it data that has been read.
273 is executed once for each
276 The first occurrence of
281 will be replaced with the
286 The following environment variables are referenced by
288 .Bl -tag -width ".Ev USE_COLOR"
290 Override command string used to launch
294 .Xr Xdialog 1 Pq Pa ports/x11/xdialog
295 .Pq requires Ql Fl X ;
303 If set and non-NULL, path to
309 is either not set or NULL, used as a prefix to
311 .Pq i.e., Ql $HOME/.dialogrc .
313 If set and NULL, disables the use of color when using
316 .Xr Xdialog 1 Pq Pa ports/x11/xdialog .
326 .Xr Xdialog 1 Pq Pa ports/x11/xdialog
329 .Bl -tag -width "$HOME/.dialogrc" -compact
330 .It Pa $HOME/.dialogrc
333 Simple example to show how fast
336 .Pq usually about ten-million per-second; your results may vary :
337 .Bd -literal -offset indent
341 Display progress while timing how long it takes
343 to produce a half-billion lines
344 .Pq usually under one minute; your results may vary :
345 .Bd -literal -offset indent
346 time yes | dpv -Nl 500000000:yes
349 An example to watch how quickly a file is transferred using
351 .Bd -literal -offset indent
352 dpv -x "nc -w 1 somewhere.com 3000" -m label file
355 A similar example, transferring a file from another process and passing the
358 .Bd -literal -offset indent
359 cat file | dpv -x "nc -w 1 somewhere.com 3000" 12345:label
362 A more complicated example:
363 .Bd -literal -offset indent
364 tar cf - . | dpv -x "gzip -9 > out.tgz" \\
365 $( du -s . | awk '{print $1 * 1024}' ):label
368 Taking an image of a disk:
369 .Bd -literal -offset indent
370 dpv -o disk-image.img -m label /dev/ada0
373 Writing an image back to a disk:
374 .Bd -literal -offset indent
375 dpv -o /dev/ada0 -m label disk-image.img
379 .Bd -literal -offset indent
380 dpv -o /dev/md42 "Zeroing md42" < /dev/zero
385 .Xr Xdialog 1 Pq Pa ports/x11/xdialog ,
390 utility first appeared in
393 .An Devin Teske Aq dteske@FreeBSD.org
395 .Xr Xdialog 1 Pq Pa ports/x11/xdialog ,
397 .Ql Fl -title Ar title
398 .Pq see above Ql Fl t Ar title
400 .Ql Fl -backtitle Ar backtitle
401 .Pq see above Ql Fl b Ar backtitle ,
402 displays the backtitle in place of the title and vice-versa.
404 .Xr Xdialog 1 Pq Pa ports/x11/xdialog
405 does not wrap long prompt texts received after initial launch.
406 This is a known issue with the
409 .Xr Xdialog 1 Pq Pa ports/x11/xdialog .
412 does not display the first character after a series of escaped escape-sequences
413 (e.g., ``\\\\n'' produces ``\\'' instead of ``\\n'').
414 This is a known issue with
419 .Xr Xdialog 1 Pq Pa ports/x11/xdialog .
421 If your application ignores
423 when set and NULL before calling
425 with color escape sequences anyway,
429 may not render properly.
430 Workaround is to detect when
432 is set and NULL and either not use color escape sequences at that time or use
440 forcing interpretation of color sequences.
442 .Xr Xdialog 1 Pq Pa ports/x11/xdialog ,
443 which renders the color escape sequences as plain text.
446 embedded "\\Z" sequences
450 for additional information.