Andrew Wood
de2fe7f6be
Correct the O_DIRECT flag setting to use the output file descriptor rather than assuming stdout.
2024-10-05 14:17:15 +01:00
Andrew Wood
c548d1f2d8
Add a "--gauge" option which alters the progress bar to show the current rate as a percentage of the max rate seen, if the size is unknown ( #46 ).
2024-10-04 22:15:14 +01:00
Andrew Wood
208ac286f8
Calculate rate_min, rate_max, etc, regardless of whether show_stats is true, since the overhead is minimal and it will allow us to use that information for other options later.
2024-10-04 20:15:15 +01:00
Andrew Wood
9aef419c4c
Surround the "--average-rate" average rate with brackets rather than square brackets, to differentiate it from the "--rate" current rate.
2024-10-04 19:59:21 +01:00
Andrew Wood
a2c6490d31
Prefix the estimated completion time of "--fineta" with "FIN" rather than "ETA" to differentiate it from the "ETA" provided by "--eta" ( #43 ).
2024-10-04 19:45:08 +01:00
Andrew Wood
4b399995f5
Allow --rate to be used with --numeric ( #17 ).
2024-10-04 19:08:02 +01:00
Andrew Wood
877bb1f91f
Move calculation code into its own file, to make display.c smaller and keep it focused purely on display.
2024-10-04 17:22:43 +01:00
Andrew Wood
cd696e60ab
Make pv__calc_percentage() into pv_percentage() in number.c instead of a static function in display.c, so it can be used in multiple places in future.
2024-10-04 17:15:18 +01:00
Andrew Wood
9bd5a518ea
New option "--stats", to show a line of statistics about the transfer once it has ended (issue #49 ).
2024-10-04 15:12:22 +01:00
Andrew Wood
65d568c283
Refactor display and calculation functions to separate them out more cleanly, move more information into the state structure instead of repeating it as function parameters, and fix a memory leak in the whole-PID mode of --watchfd.
2024-10-04 13:27:17 +01:00
Andrew Wood
a118f110fa
Use verbose variable names for readability.
2024-10-04 11:58:57 +01:00
Andrew Wood
f803f29158
Move transfer rate calculations into their own function, and make pv__format stand alone, to maintain separation of concerns.
2024-10-04 11:54:47 +01:00
Andrew Wood
954c2d32c1
Move calculated values out of state.display into a new structure, state.calc, to separate out the display portion from the calculation portion; and move history_interval into state.control, as it is a control parameter set at the start.
2024-10-04 11:08:01 +01:00
Andrew Wood
545769885d
Raise a SIGCONT to the whole process group after receiving a SIGTTOU, so that pipelines can be resumed in the background (for example "pv /dev/zero | cat > /dev/null" can now be suspended and put into the background - if we do not send that signal then "cat" remains stopped, as mentioned in issue #56 ).
2024-10-04 10:24:08 +01:00
Andrew Wood
94ea82c10a
Indentation correction.
2024-10-04 10:21:23 +01:00
Andrew Wood
a6c978573f
Move pv_write_retry() and pv_tty_write() from cursor.c to display.c so they sit with all the other display functions.
2024-10-04 09:06:24 +01:00
Andrew Wood
9a639b40b7
Use gmtime() instead of localtime() in debugging output to avoid lockups in signal handlers due to time zone lookups.
2024-10-04 08:53:14 +01:00
Andrew Wood
e84f47abc8
Refactor handling of TTOU so that instead of shuffling stderr to another file descriptor and using /dev/null when backgrounded, we set a flag to suspend terminal output, and perform all terminal writes through a new pv_tty_write function which checks that flag.
2024-10-03 23:03:31 +01:00
Andrew Wood
52a720ec33
Improve the readability of the code that handles SIGTTOU.
2024-10-03 22:08:11 +01:00
Andrew Wood
23bd296aeb
Re-order structure members to minimise padding / holes, after analysis with "pahole" on a 64-bit system.
2024-10-03 21:25:41 +01:00
Andrew Wood
69a56ced7a
Correct double-free on exit when using --watchfd - issue #96 .
2024-09-07 21:04:09 +01:00
Andrew Wood
60936080da
Move the "--size @FILE" file size reading into its own function for clarity; standardise its error message format to "program: file: message: detail"; uniquely name variables; refuse to accept a directory as a file; and with this option, try reading the size of a block device from sysfs if we can, to avoid requiring read permissions on the device.
2024-08-06 23:17:15 +01:00
Alexander Perlis
f6b0ddc0b3
Support block devices in @-syntax
2024-08-01 00:36:02 +00:00
Andrew Wood
e4ab8c56a0
Minor adjustment to comments.
2024-07-17 07:41:48 +01:00
Eric A. Borisch
3fdfd07443
Improve description and comments for blocking-write() after select()
2024-07-16 23:39:15 -05:00
Andrew Wood
d801cdd722
Remove spurious strerror() call from debug report.
2024-07-16 22:44:10 +01:00
Andrew Wood
72e5078ce9
Move the MAKE_OUTPUT_NONBLOCKING code to state.c, as it can no longer work in main.c due to accessing internal structures; but still leave it switched off by default for now.
2024-07-16 22:41:31 +01:00
Andrew Wood
a7c3f3dd35
Write the error from write() to the debugging output if nwritten is <0.
2024-07-16 22:23:51 +01:00
Andrew Wood
12f0312b00
Move the "stop at size" option setting to before the size calculation, otherwise if the size calculation tries to override that setting, it cannot do so ( #91 ).
2024-07-16 21:58:47 +01:00
Andrew Wood
8c0e3e9dad
When checking how many bytes were written, place the constant to the left of the equality check to match the rest of the code (this avoids accidental assignment if one equals sign is accidentally written instead of two), and write the appropriate debug message depending on whether the write was interrupted or it was empty.
2024-07-16 21:54:13 +01:00
Andrew Wood
c7104f0c0d
Merge pull request 'src/pv/transfer.c: timer going off returns with total_written==0; which is not an error.' ( #92 ) from eborisch/pv:write-can-return-0 into main
...
Reviewed-on: https://codeberg.org/a-j-wood/pv/pulls/92
2024-07-16 20:47:32 +00:00
Andrew Wood
f8fc5844b1
Re-order the output file descriptor setting and the size detection to correct the problem with output block device size detection that was broken in 1.8.10 ( #91 ).
2024-07-16 21:39:29 +01:00
eborisch
d86d8cf65a
Clarify state.
2024-07-16 03:57:11 +00:00
eborisch
11e5b5fe95
src/pv/transfer.c: write(2) returning 0 is not an error
...
This is being hit easily on FreeBSD with pv sitting in a zfs send/recv pipeline. As write(2) returning 0 is not an error, handle it similar to returning -1 with EINTR or EAGAIN: wait a bit and try again.
2024-07-15 21:36:57 +00:00
Andrew Wood
2bed6776e4
Truncate files written with "-o".
2024-06-08 22:02:11 +01:00
Andrew Wood
01e0290d6e
More replacement of hard-coded exit status bitmask values with named constants.
2024-06-08 21:57:36 +01:00
Andrew Wood
1c61154206
Replace hard-coded exit status bitmask values with named constants.
2024-06-08 21:49:46 +01:00
Andrew Wood
addf25ff16
Minor cleanups after merge.
2024-06-08 21:21:11 +01:00
Martin Dørum
6073445551
document the --output in the man page and help text
2024-06-08 14:31:21 +02:00
Martin Dørum
30763684b7
add -o/--output option
2024-06-08 14:31:19 +02:00
Andrew Wood
ace8f44f59
Added more debugging to stdout writes.
2024-05-11 21:13:12 +01:00
Andrew Wood
98994bbeaa
Correct the copyright year in the "--version" output.
2024-04-22 22:25:22 +01:00
Andrew Wood
b375041790
Correct issues #34 , #86 , #87 - progress output stopping when writing output data blocks - by adding a SIGALRM handler, since ignoring the signal prevents it from interrupting writes; and use setitimer() where available, instead of alarm(), to provide sufficient granularity to handle the case where the --interval is not a whole number of seconds.
2024-04-21 13:54:01 +01:00
Andrew Wood
3a41665302
Fix incorrect "%lf" string format.
2024-04-21 12:02:35 +01:00
Andrew Wood
f6686b8188
Minor formatting changes by "indent".
2024-04-21 12:01:52 +01:00
Andrew Wood
a5700cc914
Reinstate the use of $TMPDIR and $TMP in cursor positioning rather than hard-coding "/tmp" ( #88 ).
2024-04-20 21:46:23 +01:00
Andrew Wood
d3c59cbff3
Minor comment formatting correction.
2024-04-20 21:31:17 +01:00
Andrew Wood
8bc1cc28d0
Check for zero-length $HOME and document the reason flawfinder's warning is being ignored.
2024-04-20 21:01:04 +01:00
Andrew Wood
1ad9c321bc
Adjust copyright years.
2024-03-19 22:19:42 +00:00
Andrew Wood
c9dede08d4
Adjust the decimal units flag variable name from "si" to "decimal_units" so it does not overlap with other words like "size" and "signal"; add man page entry and adjust the "-L" man page entry; and allow this flag to also change how input prefixes are processed.
2024-03-19 22:17:43 +00:00