Commit graph

230 commits

Author SHA1 Message Date
Daniel Hofstetter
a69d48fb8c clippy: suppress cognitive_complexity lint 2023-10-13 14:53:32 +02:00
Benjamin Bara
8a9b29ddfb dd: fix GNU test 'dd/skip-seek-past-dev' 2023-09-24 10:00:10 +02:00
Sylvestre Ledru
9844f1f07d 0.0.20 => 0.0.21 2023-09-03 14:42:54 +02:00
Daniel Hofstetter
2e2387d434 parse_size,dd: turn instance fns to associated fns 2023-08-26 14:35:35 +02:00
Terts Diepraam
c3f9e19a3b all: normalize license notice in all *.rs files 2023-08-24 12:21:09 +02:00
Sylvestre Ledru
bf5b765cba
Remove the author copyright notices (#5184)
* Remove the author copyright notices

Rational:
* not maintained
* does not reflect reality
* don't provide any value (the info can be found in the git log)
* we don't have rules to update them
  (ex: should you update it after one line, two lines, etc)

Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2023-08-21 12:23:18 +02:00
Sylvestre Ledru
bfca6bf70f Add license headers on all files 2023-08-21 10:49:27 +02:00
Sylvestre Ledru
6f67c90032
Merge pull request #5081 from cakebaker/ci_add_default_trait_access_lint
ci: add default_trait_access lint and fix its warnings
2023-07-15 00:20:53 +02:00
Daniel Hofstetter
424d51285c clippy: fix default_trait_access lint warnings 2023-07-14 13:41:06 +02:00
Sylvestre Ledru
74530c0f51 Update the version to 0.0.20 2023-07-14 13:04:17 +02:00
crapStone
863f91eca9
fix typos
some arguments had the wrong case
2023-06-29 15:34:19 +00:00
Sylvestre Ledru
e7557c2bae
Merge branch 'main' into dd-alarm-timer 2023-06-11 18:27:41 +02:00
Sylvestre Ledru
6ecef3a0e3 Reformat TOML files with taplo
npx --yes @taplo/cli fmt
2023-06-08 09:07:19 +02:00
Sylvestre Ledru
830b7d5ce1 New release 2023-06-04 09:46:59 +02:00
Sylvestre Ledru
64c49de0cc
Merge pull request #4432 from jfinkels/dd-nocache
dd: support the [io]flag=nocache option
2023-05-12 09:53:57 +02:00
Jeffrey Finkelstein
4ff318aee1 fixup! dd: support the [io]flag=nocache option 2023-05-07 16:33:21 -04:00
Sylvestre Ledru
916f014ef0 dd: fix some clippy warnings 'variable does not need to be mutable' 2023-05-07 18:46:08 +02:00
Jeffrey Finkelstein
bd18a2a344 dd: support the [io]flag=nocache option
Add support for the `iflag=nocache` and `oflag=nocache` to make `dd`
discard the filesystem cache for the processed portion of the input or
output file.
2023-05-07 11:43:13 -04:00
Jeffrey Finkelstein
cc2f97ba0d dd: add discard_cache() funcs for Input, Output
Add the `Input::discard_cache()` and `Output::discard_cache()`
functions. These allow discarding the filesystem cache when `dd` no
longer needs to access a specified portion of the input or output
file, respectively.
2023-05-07 11:43:13 -04:00
Jeffrey Finkelstein
12e4acaec3 dd: add bytes_total to ReadStat
Add the `bytes_total` field to the `ReadStat` struct. This lets the
main loop of `dd` keep track of the total number of bytes read.
2023-05-07 11:43:13 -04:00
Sylvestre Ledru
f8d7bebed3 ignore some cognitive_complexity for now 2023-05-06 14:50:55 +02:00
Thomas Hurst
01a8623d21 dd: Add documentation to Alarm struct 2023-05-03 16:31:14 +00:00
Thomas Hurst
546631c8e7 dd: Tidy includes 2023-05-03 16:30:53 +00:00
Sylvestre Ledru
af0a263191 0.0.17 => 0.0.18 2023-03-29 08:11:25 +02:00
Sylvestre Ledru
59b03d2c9e
Merge pull request #4647 from kamilogorek/if-not-else-lint
lint: Enable clippy::if_not_else and fix all lint issues
2023-03-28 13:25:31 +02:00
Kamil Ogórek
68e90eacbb lint: Fix all issues in preparation for enabling clippy::if_not_else 2023-03-26 22:23:50 +02:00
Miles Liu
c9a95c37b2
progress: fix redundant_field_names clippy error 2023-03-21 09:20:35 +08:00
jfinkels
59d34ce667
Merge branch 'main' into dd-seconds-precision-3 2023-03-19 13:29:14 -04:00
Jeffrey Finkelstein
2f56536637 dd: fix precision for display of total time spent
Improve the display of the total time spent transferring bytes so that
the number of seconds is displayed using the `%g` format specifier as
in `printf`. This matches the behavior of GNU `dd`.

Before this commit, the precision was always set to one digit after
the decimal point. For example,

    $ dd count=100000 if=/dev/zero of=/dev/null
    100000+0 records in
    100000+0 records out
    51200000 bytes (51 MB, 49 MiB) copied, 0.2 s, 268.1 MB/s

After this commit, the precision increases dynamically as the duration
decreases. For example,

    $ dd count=100000 if=/dev/zero of=/dev/null
    100000+0 records in
    100000+0 records out
    51200000 bytes (51 MB, 49 MiB) copied, 0.1019 s, 507 MB/s
    $ dd count=1000 if=/dev/zero of=/dev/null
    1000+0 records in
    1000+0 records out
    512000 bytes (512 kB, 500 KiB) copied, 0.002663 s, 256 MB/s
    $ dd count=10 if=/dev/zero of=/dev/null
    10+0 records in
    10+0 records out
    5120 bytes (5.1 kB, 5.0 KiB) copied, 0.000182 s, 5.1 MB/s
2023-03-11 22:37:43 -05:00
Jeffrey Finkelstein
9cb6b4a3c0 dd: open stdin from file descriptor when possible
Open stdin using its file descriptor so that a `dd skip=N` command in
a subshell does not consume all bytes from stdin.

For example, before this commit, multiple instances of `dd` reading
from stdin and appearing in a single command line would incorrectly
result in an empty stdin for each instance of `dd` after the first:

    $ printf "abcdef\n" | (dd bs=1 skip=3 count=0 && dd)  2> /dev/null
    # incorrectly results in no output

After this commit, the `dd skip=3` process reads three bytes from the
file descriptor referring to stdin without draining the remaining
three bytes when it terminates:

    $ printf "abcdef\n" | (dd bs=1 skip=3 count=0 && dd)  2> /dev/null
    def
2023-03-11 20:56:37 +00:00
Sylvestre Ledru
c68324a58c md: improve the display for dd, expr and stat 2023-03-04 18:44:14 +01:00
Sylvestre Ledru
422a27d375 parent 9d5dc500e6
author Sylvestre Ledru <sylvestre@debian.org> 1677865358 +0100
committer Sylvestre Ledru <sylvestre@debian.org> 1677951797 +0100

md: Fix a bunch of warnings in the docs
2023-03-04 18:43:40 +01:00
Thomas Hurst
52c93a4d10 dd: Simplify loop of progress Alarm thread 2023-03-01 13:58:09 +00:00
Thomas Hurst
cf7b90bbe7 dd: use an alarm thread instead of elapsed() calls
Quick benchmark on FreeBSD 13.1-RELEASE:

Summary
  './dd-thread-alarm if=/dev/zero of=/dev/null count=4000000 status=progress' ran
  1.17 ± 0.17 times faster than './dd-baseline if=/dev/zero of=/dev/null count=4000000
        status=progress'
2023-02-28 17:45:14 +00:00
Jeffrey Finkelstein
b9003d19ed dd: move dd_out() function up to module level
Move the `dd_out()` function out of the `impl Output` and up to the
module level, renaming it to `dd_copy()`. This change aligns it with
the pattern set by `std::io::copy()`, which similarly takes an input
reader and an output writer.

This does not change the behavior of `dd`, just the code organization
to make it more closely match the idioms in the Rust standard library.
2023-02-23 21:17:19 -05:00
Jeffrey Finkelstein
3faf64280d dd: move finalize() function to module level
Move the `finalize()` function out of the `impl Output` block and up
to the module level so that it can be accessed by other module-level
functions.
2023-02-23 21:06:38 -05:00
Terts Diepraam
60d2df56de
Merge pull request #4164 from jfinkels/dd-fifo-seek
dd: allow skipping and seeking in FIFOs
2023-02-22 10:38:45 +01:00
Jeffrey Finkelstein
c52647a632 dd: add support for skipping in input FIFO
For example, `dd skip=1 if=fifo` will now work.
2023-02-18 21:24:16 +01:00
Jeffrey Finkelstein
9c3f810f97 dd: add support for seeking in output FIFOs
For example, `dd seek=1 of=fifo` will now work.
2023-02-18 21:24:16 +01:00
Jeffrey Finkelstein
cf72c990f2 dd: create Source enum and simpler Input struct
This mirrors a recent commit that introduced the `Dest` enum and a
simplified `Output` struct. These changes allow us to add new types of
inputs and output more easily.
2023-02-18 21:24:16 +01:00
Daniel Hofstetter
dcc7c4ed7b Use help_about! & adapt help files for its usage 2023-02-17 16:40:22 +01:00
Terts Diepraam
ae27c82020 Use workspace inheritance for dependencies 2023-02-11 18:54:46 +01:00
dependabot[bot]
423ff9fe8b build(deps): bump gcd from 2.1.0 to 2.2.0
Bumps [gcd](https://github.com/frewsxcv/rust-gcd) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/frewsxcv/rust-gcd/releases)
- [Commits](https://github.com/frewsxcv/rust-gcd/compare/2.1.0...2.2.0)

---
updated-dependencies:
- dependency-name: gcd
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 21:10:27 +01:00
Daniel Hofstetter
f6b646e4e5 clippy: fix warnings introduced with Rust 1.67.0 2023-01-27 17:37:56 +01:00
Terts Diepraam
4d3dc78686 Version 0.0.17 2023-01-21 10:38:18 +01:00
Daniel Hofstetter
f50c352adc clippy: use type name instead of Default::default 2023-01-16 10:52:28 +01:00
Roy Ivy III
27d20129fe fix/dd ~ correct usage error display text 2023-01-13 22:14:48 -06:00
trasua
ef8f92f720 uucore: add options to parse_size::Parser to support parse_byte_count() in sort.rs 2022-12-26 10:23:20 +01:00
Daniel Hofstetter
a0522f5cbd clippy: fix some "unnested or-patterns" warnings 2022-12-20 16:07:37 +01:00
Joining7943
c94a039358 clippy and doc: Fix warnings, mostly needless conversions. Fix documentation warning. 2022-12-16 18:36:27 +01:00