Commit graph

5427 commits

Author SHA1 Message Date
Jeffrey Finkelstein
6167de903e cp: restrict permissions when copying FIFO
When copying the contents of a named pipe (also known as a FIFO) via

    cp --preserve=ownership --copy-contents fifo fifo-copy

limit the permissions of the destination file while the contents are
being copied, and then restore the permissions to match those of the
source FIFO when all contents have been copied successfully.
2022-12-03 18:30:47 -05:00
Jeffrey Finkelstein
3a5b31a30f dd: correct rendering of SI and IEC byte counts
Adjust the rendering of the concise byte counts in both SI and IEC
units to better match the behavior of GNU dd.

Before this commit,

    $ head -c 1024 /dev/zero | dd > /dev/null
    2+0 records in
    2+0 records out
    1024 bytes (1 KB, 1024 B) copied, 0.0 s, 1.0 MB/s

After this commit,

    $ head -c 1024 /dev/zero | dd > /dev/null
    2+0 records in
    2+0 records out
    1024 bytes (1.0 kB, 1.0 KiB) copied, 0.0 s, 1.0 MB/s

For comparison, GNU dd produces the following:

    $ head -c 1024 /dev/zero | dd > /dev/null
    2+0 records in
    2+0 records out
    1024 bytes (1.0 kB, 1.0 KiB) copied, 0.000332864 s, 3.1 MB/s
2022-12-03 10:14:00 -05:00
Sylvestre Ledru
3880b463fe
Merge pull request #4185 from jfinkels/uucore-sprintf-2
uucore: add sprintf() function
2022-12-03 10:21:09 +01:00
Sylvestre Ledru
818012e30b
Merge pull request #4193 from jfinkels/touch-relative-time
touch: add support for some relative times
2022-12-03 10:16:21 +01:00
Sylvestre Ledru
8e5d374ec2
Merge pull request #4197 from tertsdiepraam/cleanup-uucore-process
`uucore/process`: remove custom `ExitStatus`
2022-12-03 10:15:48 +01:00
Jeffrey Finkelstein
66ee373373 cp: preserve hard links when target already exists
Prevent a panic in `cp -a` when the target of a hard link already
exists in the target directory structure.

For example,

    $ mkdir -p src dest/src
    $ touch src/f dest/src/f
    $ ln src/f src/link
    $ cp -a src dest

The `cp` command now succeeds without error.
2022-12-02 23:50:18 -05:00
Terts Diepraam
dc828fed2d uucore/process: remove custom ExitStatus 2022-12-02 12:25:14 +01:00
Sylvestre Ledru
3ca6139e0f
Merge pull request #4158 from tertsdiepraam/markdown-in-docs-v1
Markdown in docs v1
2022-12-02 09:39:33 +01:00
Jeffrey Finkelstein
d083fa19c2 uucore: add sprintf() function
Add an `sprintf()` function (and `printf()` function) to
`uucore::memo`.  The `sprintf()` function behaves roughly like the
standard Rust `format!()`, but follows our implementation of the GNU
`printf` formatting logic instead.
2022-12-02 07:48:36 +01:00
Sylvestre Ledru
403780a613
Merge pull request #4196 from cakebaker/cut_remove_unnecessary_return_type
cut: remove unnecessary return type
2022-12-02 07:47:49 +01:00
Daniel Hofstetter
6cc470920f numfmt: derive default impl for FormatOptions 2022-12-01 13:49:23 +01:00
Daniel Hofstetter
9a2174ba02 chore: standardize creation of empty strings 2022-12-01 13:49:23 +01:00
Terts Diepraam
efa0fd498b
Merge pull request #4179 from djedi23/verbose_and_progress
Suspend the progress bar before printing the copied files.
2022-11-30 13:19:58 +01:00
Sylvestre Ledru
033969cf8f
Merge pull request #4181 from cakebaker/split_backticks_are_unbalanced
split: fix "backticks are unbalanced" warnings
2022-11-30 08:38:30 +01:00
Terts Diepraam
b632ba8ff6 numfmt: update help to markdown syntax 2022-11-29 22:54:41 +01:00
Terts Diepraam
bcf3b852c6 expr: update help to markdown syntax 2022-11-29 22:54:41 +01:00
Terts Diepraam
e155a5ea6d uudoc: support after_help and read directly from markdown file 2022-11-29 22:54:41 +01:00
Moïse Valvassori
8b30ead588 add comment to the pregress bar suspension. 2022-11-29 22:54:07 +01:00
Moïse Valvassori
1b004053ac Suspend the progress bar before printing the copied files. 2022-11-29 22:54:07 +01:00
Daniel Hofstetter
ac1790c69e split: fix "backticks are unbalanced" warnings 2022-11-29 22:53:56 +01:00
Jeffrey Finkelstein
9632db4f86 dd: correctly set file size when conv=sparse
Before this commit, if `sparsefile` were a regular file of non-zero
size whose contents are all null bytes, then

    dd if=sparsefile of=outfile conv=notrunc

would have resulted in `outfile` having zero size as reported by
`stat`. After this commit, `outfile` will have the same size as
`sparsefile` (even if the contents are represented sparsely by the
filesystem).
2022-11-29 22:53:18 +01:00
Jeffrey Finkelstein
a396ebd883 touch: add support for some relative times
For example,

    $ touch -d +1 days

Fixes #3964.
2022-11-29 22:53:13 +01:00
Daniel Hofstetter
be7717b2d0 cut: remove unnecessary return type 2022-11-29 22:52:58 +01:00
Sylvestre Ledru
af804df9a2
Merge pull request #4166 from miles170/issue-4080-cp-fails-on-mac
cp: fix `cp --force --backup f f` fails on macOS
2022-11-21 21:13:35 +01:00
Sylvestre Ledru
edc08f59fb update lscolors to switch to nu_ansi_term 2022-11-20 13:46:02 +01:00
Miles Liu
3896aa31be
cp: fix cp --force --backup f f fails on macOS 2022-11-20 18:14:42 +08:00
Jeffrey Finkelstein
903ad1656d dd: move tests of slow reader to test_dd.rs
Move some tests that simulate a slow reader from `dd.rs` to
`tests/by-util/test_dd.rs`, and employ a FIFO and `sleep()` to
simulate the slow reader instead of a custom struct that implements
`Read`. This change restricts the type of `Input`s the
`Output::dd_out()` function can accept, facilitating a future change
to make `Input` an enum.
2022-11-19 09:27:23 -05:00
Terts Diepraam
5acb0227aa
Merge pull request #4134 from jfinkels/dd-output-enums
dd: create Dest enum and simpler Output struct
2022-11-19 14:52:46 +01:00
Terts Diepraam
1b35e467ac
Merge pull request #4137 from jfinkels/dd-bytes-suffix
dd: allow B as a suffix for count, seek, and skip
2022-11-19 12:23:43 +01:00
Miles Liu
b2b3512749
stat: remove unused import 2022-11-19 17:37:59 +08:00
Sylvestre Ledru
6d7850549b
Merge pull request #4150 from tertsdiepraam/stat-refactor
`stat` refactor
2022-11-19 09:57:23 +01:00
Jeffrey Finkelstein
701550d76b dd: allow B as a suffix for count, seek, and skip
Allow uppercase "B" on its own as a unit specifier for the `count`,
`seek`, and `skip` arguments to `dd`.

For example,

    $ printf "abcdef" | dd count=3B status=none
    abc
2022-11-18 20:27:42 -05:00
Jeffrey Finkelstein
847378f8d2 uucore: create parse_size::Parser struct
Add a `uucore::parse_size::Parser` struct which will allow future
commits to add fields that change the behavior of `parse_size()`.
2022-11-18 20:27:34 -05:00
Sylvestre Ledru
435ef5da8b
Merge pull request #4132 from tertsdiepraam/sort-accept-sort-mode-multiple-times
`sort`: allow a sort mode to appear multiple times
2022-11-17 21:43:28 +01:00
Terts Diepraam
33cbc94f25 rm: use uucore::prompt_yes over custom prompt function 2022-11-17 15:12:18 +01:00
Terts Diepraam
91df2b1709 mv: use uucore::prompt_yes over custom function 2022-11-17 15:11:19 +01:00
Terts Diepraam
7bb0e8f849 ln: use uucore::prompt_yes over custom function 2022-11-17 15:10:26 +01:00
Terts Diepraam
ed34264b95 cp: use uucore prompt_yes instead of custom 2022-11-17 15:09:34 +01:00
Terts Diepraam
6cdcfca573 uucore: add prompt_yes!() and read_yes()
These functions are based on existing functions and macros
in utils `cp`, `ln`, `mv ` and `rm`. This unifies the separate
implementations.
2022-11-17 15:06:49 +01:00
Sylvestre Ledru
14f22a26b8
Merge pull request #4152 from uutils/dependabot/cargo/digest-0.10.6
build(deps): bump digest from 0.10.5 to 0.10.6
2022-11-17 10:29:07 +01:00
dependabot[bot]
59c9063248
build(deps): bump digest from 0.10.5 to 0.10.6
Bumps [digest](https://github.com/RustCrypto/traits) from 0.10.5 to 0.10.6.
- [Release notes](https://github.com/RustCrypto/traits/releases)
- [Commits](https://github.com/RustCrypto/traits/compare/digest-v0.10.5...digest-v0.10.6)

---
updated-dependencies:
- dependency-name: digest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 06:13:25 +00:00
Miles Liu
d505df5369
uu: use normal use declarations to import macros 2022-11-17 11:49:23 +08:00
Terts Diepraam
82464b703a stat: remove extend_digits and print_adjusted in favor of format! 2022-11-17 01:25:10 +01:00
Terts Diepraam
3499bdaeac stat: change precision from i32 to Option<usize> 2022-11-17 00:13:20 +01:00
Terts Diepraam
cdb777a243 stat: remove pub after moving tests 2022-11-16 23:47:45 +01:00
Terts Diepraam
b0894f86ed stat: minor cleanup 2022-11-16 23:45:35 +01:00
Terts Diepraam
406df12b18 stat: make OutputType carry data, instead of turning everthing immediately into a string 2022-11-16 22:23:03 +01:00
Terts Diepraam
b0224e8145 stat: move unit tests to stat.rs instead of test_stat.rs 2022-11-16 21:17:39 +01:00
Terts Diepraam
7e5b6400e3 stat: use Flags struct instead of u8 bit manipulation 2022-11-16 21:12:40 +01:00
Terts Diepraam
ad713fd1d9 stat: clean up some comments 2022-11-16 20:48:21 +01:00
Emil Suleymanov
8591d99c1b cp: make --preserve use the defaults when empty 2022-11-16 01:24:26 +01:00
Niyaz Nigmatullin
012bb7e3d8 deps: fix clippy warning for chrono usage 2022-11-15 17:52:20 +02:00
Terts Diepraam
03c40b2db2 sort: allow a sort mode to appear multiple times
A test case for this is `sort -k 2n,2n` which should be accepted, because `n` is
compatible with itself.

Resolves issue #4129.
2022-11-15 14:22:01 +01:00
Jeffrey Finkelstein
4621557ce7 dd: create Dest enum and simpler Output struct 2022-11-15 14:21:54 +01:00
dependabot[bot]
af2833761c build(deps): bump chrono from 0.4.22 to 0.4.23
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.22 to 0.4.23.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.22...v0.4.23)

---
updated-dependencies:
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-15 14:21:20 +01:00
Jeffrey Finkelstein
5ee5681343 dd: don't allocate buffer if count=0
As an optimization, prevent `dd` from allocating buffers for use in
its main loop when `count=0`.
2022-11-12 18:18:16 -05:00
Sylvestre Ledru
81a2abc094
Merge pull request #3903 from tertsdiepraam/cp-progress
`cp`: add progress bar
2022-11-11 09:25:37 +01:00
Sylvestre Ledru
abfccb351f
Fix a clippy warning 2022-11-11 08:20:24 +01:00
Jeffrey Finkelstein
416a742e31 cp: use sparse copy on --sparse=always
Correct the behavior of `cp --reflink=never --sparse=always` so that
it performs a sparse copy. Before this commit, it was incorrectly
performing a dense copy.
2022-11-10 21:43:19 -05:00
Terts Diepraam
42377626f6 docs: document extensions over GNU
docs: fix typos in extensions page
2022-11-11 00:44:44 +01:00
Terts Diepraam
21e691c3b9 cp: add progress bar
Adds the `-g` and `--progress` flags to enable a progress bar via
indicatif.
2022-11-11 00:44:42 +01:00
Emil Suleymanov
1172a7e781
cp: remove interactive mode message on 'no' (#4069) 2022-11-10 12:45:18 +01:00
Sylvestre Ledru
22bbdad46f
Merge pull request #4119 from sylvestre/platform
update to platform-info 1.0.1
2022-11-09 11:24:39 +01:00
Steve Lau
7f7bac29b7 ls: use libc::{major, minor} to calculate device number 2022-11-09 17:13:34 +08:00
Steve Lau
2bb75a92b5 ls: use libc::{major, minor} to calculate device number 2022-11-09 17:09:54 +08:00
Sylvestre Ledru
b0b059e34a update to platform-info 1.0.1 2022-11-08 21:50:14 +01:00
Sylvestre Ledru
b90c2a3083
Merge pull request #4112 from uutils/dependabot/cargo/regex-1.7.0
build(deps): bump regex from 1.6.0 to 1.7.0
2022-11-08 08:54:12 +01:00
Terts Diepraam
526cbae9ce
Merge pull request #4113 from sylvestre/var-env
Weird env variable names should trigger an error.
2022-11-06 21:29:31 +01:00
Sylvestre Ledru
9a5d18b8f6 Weird env variable names should trigger an error.
For example `env a=b=c printenv a=b` should fail

Tested by tests/misc/printenv.sh
2022-11-06 17:35:00 +01:00
dependabot[bot]
26489d47a9
build(deps): bump regex from 1.6.0 to 1.7.0
Bumps [regex](https://github.com/rust-lang/regex) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.6.0...1.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-06 13:55:24 +00:00
dependabot[bot]
43c830e609
build(deps): bump terminal_size from 0.2.1 to 0.2.2
Bumps [terminal_size](https://github.com/eminence/terminal-size) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/eminence/terminal-size/releases)
- [Commits](https://github.com/eminence/terminal-size/compare/v0.2.1...v0.2.2)

---
updated-dependencies:
- dependency-name: terminal_size
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-06 13:55:09 +00:00
Sylvestre Ledru
446df9da5a
Merge branch 'main' into cp-backup-force 2022-11-06 07:24:48 +01:00
Sylvestre Ledru
47e3149e85
Merge pull request #3978 from jfinkels/cp-copy-contents-fifo
cp: implement --copy-contents option for fifos
2022-11-06 07:23:25 +01:00
Jeffrey Finkelstein
5b100fef62 cp: implement --copy-contents option for fifos
Implement the `--copy-contents` option when the source is a FIFO, so
that the contents of the FIFO are copied (when the bytes become
available for reading) instead of the FIFO object itself. For example,

    $ mkfifo fifo
    $ cp --copy-contents fifo outfile &
    [1] 1614080
    $ echo foo > fifo
    $ cat outfile
    foo
    [1]+  Done                    cp --copy-contents fifo outfile
2022-11-05 19:25:37 -04:00
Jeffrey Finkelstein
fbed01dd54 cp: force copying file to itself with --backup
Fix the behavior of `cp` when both `--backup` and `--force` are
specified and the source and destination are the same file.  Before
this commit, `cp` terminated without copying and without making a
backup. After this commit, the copy is made and the backup file is
made. For example,

    $ touch f
    $ cp --force --backup f f

results in a backup file `f~` being created.
2022-11-05 19:23:50 -04:00
Sylvestre Ledru
6bc68cdcdf
Merge branch 'main' into refactor/add_nix_error_auto_conversion 2022-11-04 12:54:35 +01:00
Orhun Parmaksız
be49eb68f3
fix: address test failures 2022-11-04 13:35:54 +03:00
Daniel Hofstetter
7df36bb153 mv: fix "needless borrow" clippy warnings 2022-11-04 10:07:21 +01:00
Daniel Hofstetter
96ef306cb3 Fix "unwrap or else default" clippy warning 2022-11-04 10:07:21 +01:00
Daniel Hofstetter
59f37d88d0 rm: fix "needless borrow" clippy warnings 2022-11-04 10:07:21 +01:00
Sylvestre Ledru
d76da1dc95
Merge pull request #4106 from bnjbvr/remove-unused-dependencies2
Remove unused dependencies
2022-11-04 09:24:06 +01:00
dependabot[bot]
c44c7ac7b2
build(deps): bump num_cpus from 1.13.1 to 1.14.0
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases)
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.13.1...v1.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-04 06:07:50 +00:00
Benjamin Bouvier
c2a6f6c77b Remove unused dependencies 2022-11-03 21:14:38 +01:00
Sylvestre Ledru
2d79c4f693
Merge pull request #4091 from dmatos2012/allow-default-value-mktemp
mktemp: allow default missing value
2022-11-03 20:46:11 +01:00
Sylvestre Ledru
f60e861232
Merge pull request #4074 from jfinkels/cp-force-dangling-symlink
cp: restrict copy through dangling symlink with -f
2022-11-03 08:27:41 +01:00
David Matos
53c4b0b81e mktemp: allow default missing value 2022-11-03 08:27:08 +01:00
Sylvestre Ledru
9293cbb05b
Merge pull request #4040 from uutils/dependabot/cargo/binary-heap-plus-0.5.0
build(deps): bump binary-heap-plus from 0.4.1 to 0.5.0
2022-11-03 08:25:30 +01:00
Daniel Hofstetter
2d4810b91b numfmt: allow ' ' as field separator 2022-11-01 10:04:46 +01:00
Daniel Hofstetter
27c233f294 numfmt: allow "-" in field list 2022-10-31 14:53:41 +01:00
Terts Diepraam
ba3bb56041
Merge pull request #4013 from palaster/rm-correct-prompts
rm: rm3 now passes
2022-10-31 10:17:27 +01:00
Sylvestre Ledru
f2f2f7033e
Merge branch 'main' into refactor/add_nix_error_auto_conversion 2022-10-30 15:54:13 +01:00
Sylvestre Ledru
bc126085c4
Merge branch 'main' into cp-force-dangling-symlink 2022-10-29 20:01:07 +02:00
Pat Laster
7049c64790
Merge branch 'main' into rm-correct-prompts 2022-10-29 11:10:20 -05:00
Pat Laster
4b4222ffe3
Bump libc version from "0.2.136" to "0.2.137" 2022-10-29 11:09:52 -05:00
Daniel Hofstetter
3a8feedf2d numfmt: allow hyphen values for --field option 2022-10-29 16:50:41 +02:00
Sylvestre Ledru
b3af47a390
Merge branch 'main' into cp-force-dangling-symlink 2022-10-28 21:24:42 +02:00
Sylvestre Ledru
4b2138e61e
Merge pull request #4087 from uutils/dependabot/cargo/libc-0.2.137
build(deps): bump libc from 0.2.136 to 0.2.137
2022-10-28 21:23:42 +02:00
Pat Laster
c7af9a6a80
Bump libc version from "0.2.135" to "0.2.136" 2022-10-27 13:41:55 -05:00
Pat Laster
c4417bf9b2
Merge branch 'main' into rm-correct-prompts 2022-10-27 13:38:41 -05:00
Sylvestre Ledru
00d93ff451
Merge pull request #4088 from tertsdiepraam/hashsum-test-no-names
hashsum: enable testing --no-names
2022-10-27 19:55:45 +02:00
Daniel Hofstetter
2eb0b6dfe0 numfmt: round values if precision is 0 2022-10-27 15:33:20 +02:00
Sylvestre Ledru
34eabca299 pwd: support the env variable 'POSIXLY_CORRECT'
Should fix tests/misc/pwd-option.sh
2022-10-26 11:40:46 +02:00
Terts Diepraam
96b6252910
Merge pull request #4081 from sylvestre/chown-sep
chown: fails when XXXX. or XXXX: is provided (when XXXX is numeric value)
2022-10-26 11:24:35 +02:00
Terts Diepraam
bbc3495896 hashsum: enable testing --no-names
Co-authored-by: Huijeong Kim <herehuijeong@gmail.com>
2022-10-26 11:10:26 +02:00
dependabot[bot]
69c1f28c66
build(deps): bump libc from 0.2.136 to 0.2.137
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.136 to 0.2.137.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.136...0.2.137)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-26 06:42:06 +00:00
Sylvestre Ledru
67a36cf55d
Merge pull request #4082 from uutils/dependabot/cargo/libc-0.2.136
build(deps): bump libc from 0.2.135 to 0.2.136
2022-10-26 08:40:14 +02:00
Pat Laster
0079f73568
Merge branch 'main' into rm-correct-prompts 2022-10-25 20:58:01 -05:00
Sylvestre Ledru
52d82d54a3 Revert "hashsum: test b3sum::test_nonames for real (#4027)"
This reverts commit 02f6fa7b24.
2022-10-25 23:44:05 +02:00
dependabot[bot]
2213ad5d1c build(deps): bump libc from 0.2.135 to 0.2.136
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.135 to 0.2.136.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.135...0.2.136)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 23:28:47 +02:00
Sylvestre Ledru
76a0794823
Merge pull request #4072 from jfinkels/clippy-fixes
clippy fixes
2022-10-25 23:28:20 +02:00
Sylvestre Ledru
42fad7c4e5
Merge pull request #4078 from sylvestre/update-i
{cp, mv} -i --update source existing should not do anything and exit 0
2022-10-25 08:31:39 +02:00
Sylvestre Ledru
9f1ac221cd chown: fails when XXXX. or XXXX: is provided (when XXXX is numeric values)
If the arg starts with an id numeric value, the group isn't set but the separator is provided,
we should fail with an error

Should fix tests/chown/separator.sh
2022-10-25 08:25:05 +02:00
Pat Laster
9069d4832a
Merge branch 'main' into rm-correct-prompts 2022-10-24 18:36:52 -05:00
Sylvestre Ledru
6e8f8034ba {cp, mv} -i --update source existing should not do anything and exit 0
Should fix tests/mv/update.sh
2022-10-24 21:03:30 +02:00
Daniel Hofstetter
dedb6289dd numfmt: handle negative zero values 2022-10-24 15:13:02 +02:00
Jeffrey Finkelstein
d48a650966 cp: restrict copy through dangling symlink with -f
Change `cp` to terminate with an error when attempting to copy through
a dangling symbolic link with the `--force` option. Before this
commit,

    touch src
    ln -s no-such-file dest
    cp -f src dest

would incorrectly replace `dest` with the contents of `src`. After
this commit, it correctly fails with the error message

    cp: not writing through dangling symlink 'dest'
2022-10-23 20:17:20 -04:00
Jeffrey Finkelstein
55b3766c10 clippy fixes 2022-10-23 13:56:20 -04:00
Sylvestre Ledru
c766726e8b
Merge pull request #3281 from jfinkels/split-round-robin
split: implement round-robin arg to --number
2022-10-23 09:57:01 +02:00
Jeffrey Finkelstein
ac3fcca6c0 cp: correctly copy ancestor dirs in --parents mode
Fix a bug where `cp` failed to copy ancestor directories when using
the `--parents` option. For example, before this commit:

    $ mkdir -p a/b/c d
    $ cp --parents a/b/c d
    $ find d
    d
    d/c

After this commit

    $ mkdir -p a/b/c d
    $ cp --parents a/b/c d
    $ find d
    d
    d/a
    d/a/b
    d/a/b/c

This commit also adds the correct messages for `--verbose` mode:

    $ cp -r --parents --verbose a/b/c d
    a -> d/a
    a/b -> d/a/b
    'a/b/c' -> 'd/a/b/c'

Fixes #3332.
2022-10-23 00:06:56 -04:00
Jeffrey Finkelstein
cd3f7b89a7 cp: make cp -a not fail on Windows
Before this commit, `cp -a` would terminate with a non-zero status
code on Windows because there are no extended attributes (xattr) to
copy. However, the GNU documentation for cp states

> Try to preserve SELinux security context and extended attributes
> (xattr), but ignore any failure to do that and print no
> corresponding diagnostic.

so it seems reasonable to do nothing instead of exiting with an error
in this case.
2022-10-23 00:03:26 -04:00
Jeffrey Finkelstein
7dc96697c9 split: implement round-robin arg to --number
Implement distributing lines of a file in a round-robin manner to a
specified number of chunks. For example,

    $ (seq 1 10 | split -n r/3) && head -v xa[abc]
    ==> xaa <==
    1
    4
    7
    10

    ==> xab <==
    2
    5
    8

    ==> xac <==
    3
    6
    9
2022-10-22 23:15:55 -04:00
Pat Laster
744481c800
Updated handle_writable_directory comment 2022-10-22 18:00:17 -05:00
Pat Laster
99942b4234
Merge branch 'main' into rm-correct-prompts 2022-10-22 14:12:55 -05:00
Orhun Parmaksız
f117f36313
Merge branch 'main' into refactor/add_nix_error_auto_conversion 2022-10-22 20:35:43 +02:00
Orhun Parmaksız
81ea9521ce
fix: conditionally enable nix error conversions 2022-10-22 21:34:45 +03:00
Orhun Parmaksız
c19c19e4db
docs: add usage example for nix::Errno conversion 2022-10-22 21:26:33 +03:00
Sylvestre Ledru
bb27734f6a
Merge pull request #4067 from uutils/dependabot/cargo/filetime-0.2.18
build(deps): bump filetime from 0.2.17 to 0.2.18
2022-10-22 19:55:44 +02:00
Orhun Parmaksız
990bb4224d
test: add test for nix::Error conversions 2022-10-22 17:45:40 +03:00
Orhun Parmaksız
df8ba87516
feat: add more implementations for converting nix::Error 2022-10-22 17:20:57 +03:00
Huijeong Kim
02f6fa7b24
hashsum: test b3sum::test_nonames for real (#4027)
* hashsum: test b3sum::test_nonames for real

Signed-off-by: Huijeong Kim <herehuijeong@gmail.com>

* apply cargo format

Signed-off-by: Huijeong Kim <herehuijeong@gmail.com>
2022-10-22 11:23:39 +02:00
Sylvestre Ledru
fd13ceddcb
Merge branch 'main' into rm-correct-prompts 2022-10-22 10:22:29 +02:00
dependabot[bot]
5696059d51
build(deps): bump filetime from 0.2.17 to 0.2.18
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.17 to 0.2.18.
- [Release notes](https://github.com/alexcrichton/filetime/releases)
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.17...0.2.18)

---
updated-dependencies:
- dependency-name: filetime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 08:21:48 +00:00
Sylvestre Ledru
e4fe2b10fa
Merge pull request #4014 from tertsdiepraam/ls-windows-permissions
`ls`, `stat`: Show more info in long format on Windows
2022-10-22 10:21:43 +02:00
dependabot[bot]
c6a88c8374
build(deps): bump binary-heap-plus from 0.4.1 to 0.5.0
Bumps [binary-heap-plus](https://github.com/sekineh/binary-heap-plus-rs) from 0.4.1 to 0.5.0.
- [Release notes](https://github.com/sekineh/binary-heap-plus-rs/releases)
- [Changelog](https://github.com/sekineh/binary-heap-plus-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sekineh/binary-heap-plus-rs/commits)

---
updated-dependencies:
- dependency-name: binary-heap-plus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 08:19:47 +00:00
Sylvestre Ledru
74624b27f1
Merge branch 'main' into refactor/add_nix_error_auto_conversion 2022-10-22 10:19:09 +02:00
Sylvestre Ledru
5f9e66a2fb
Merge pull request #4064 from dmatos2012/hashsum-process-files-before-exit
hashsum: warn on file not found rather than fail
2022-10-22 10:18:05 +02:00
Pat Laster
5968f53ef4 Fixed merge conflict 2022-10-20 15:42:55 -05:00
Pat Laster
00af775cd9
Merge branch 'main' into rm-correct-prompts 2022-10-20 15:03:37 -05:00
Niyaz Nigmatullin
0eae0fdb74 whoami: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
f95a14537b touch: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
580bff02f8 sync: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
5ef1745960 tail: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
ff30cacbe1 date: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
b0b7565ba9 hostname: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
05a224d40e rm: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
c26bf02a04 du: migrate winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
45dea119fa cp: remove unused winapi dependency 2022-10-20 12:16:22 +03:00
Niyaz Nigmatullin
76ee0db26c uucore: migrate from winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Jeffrey Finkelstein
aeba601335 cp: break up copy_directory() into helper funcs
Add some additional structs and helper functions to make the code in
`copydir.rs` easier to read and maintain. This commit changes only the
organization of the code, not its function.
2022-10-19 22:39:34 -04:00
Jeffrey Finkelstein
d8146d1b5c cp: move copy_directory to new module copydir.rs
Move the `copy_directory()` helper function to a new module
`copydir.rs`. This commit only changes the organization of the code,
not its behavior.
2022-10-19 22:39:12 -04:00
Jeffrey Finkelstein
11d3e0f743 cp: refactor Options::preserve_hard_links()
Refactor common code into a helper method
`Options::preserve_hard_links()`. This also eliminates the need for
mutability in a local variable in two places.
2022-10-19 22:35:10 -04:00
David Matos
d46e5df3d3 hashsum: warn on file not found rather than fail 2022-10-19 22:46:47 +02:00
dependabot[bot]
e2c368cee0
build(deps): bump sha3 from 0.10.5 to 0.10.6
Bumps [sha3](https://github.com/RustCrypto/hashes) from 0.10.5 to 0.10.6.
- [Release notes](https://github.com/RustCrypto/hashes/releases)
- [Commits](https://github.com/RustCrypto/hashes/compare/sha3-v0.10.5...sha3-v0.10.6)

---
updated-dependencies:
- dependency-name: sha3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 06:27:28 +00:00
Orhun Parmaksız
50be73d99f
refactor: add automatic conversion for nix::Errno 2022-10-19 00:13:59 +03:00
Pat Laster
79895a73e6
Merge branch 'main' into rm-correct-prompts 2022-10-18 10:48:26 -05:00
Pat Laster
87df47dee3
Merge branch 'main' into rm-correct-prompts 2022-10-17 17:41:44 -05:00
Pat Laster
2e61580b99 Cleaner force_prompt_never 2022-10-17 17:40:33 -05:00
Niyaz Nigmatullin
505865cce8 split: fix ---io for clap 4 2022-10-18 00:21:27 +03:00
Sylvestre Ledru
969f821830
Merge pull request #4009 from andrewbaptist/fix_eof_linebytes
Match GNU semantics for missing EOF
2022-10-17 16:23:20 +02:00
Niyaz Nigmatullin
3e907e0c06 Fix usage of for_byte_record_with_terminator from bstr 2022-10-17 11:00:23 +03:00
dependabot[bot]
e48125fc9c build(deps): bump bstr from 0.2.17 to 1.0.1
Bumps [bstr](https://github.com/BurntSushi/bstr) from 0.2.17 to 1.0.1.
- [Release notes](https://github.com/BurntSushi/bstr/releases)
- [Commits](https://github.com/BurntSushi/bstr/compare/0.2.17...1.0.1)

---
updated-dependencies:
- dependency-name: bstr
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 10:58:56 +03:00
Pat Laster
03578a7aca Fixed invert issue 2022-10-16 13:14:17 -05:00
Pat Laster
b612ce5cd7 Cleaner force_prompt_never 2022-10-16 10:57:12 -05:00
Pat Laster
b3b90e453c Forgot fmt again 2022-10-15 17:41:11 -05:00
Pat Laster
1c507c6739 Updated to clap4 2022-10-15 17:39:10 -05:00
Terts Diepraam
ed6b4c8635 docs: fix usage string since clap 4 2022-10-15 22:30:52 +02:00
Pat Laster
430652193b Fixed merge conflicts 2022-10-15 15:08:28 -05:00
Pat Laster
7e62945fd3
Merge branch 'main' into rm-correct-prompts 2022-10-15 14:58:13 -05:00
Sylvestre Ledru
23b0bb3da4
Merge pull request #3991 from tertsdiepraam/clap-4
Clap 4
2022-10-14 21:49:05 +02:00
Sylvestre Ledru
6fd64c83fa
Merge pull request #4048 from tertsdiepraam/package-install-docs
docs: add installation page with package managers
2022-10-14 21:15:54 +02:00
Terts Diepraam
5c676ac268 docs: add installation page with package managers 2022-10-14 17:11:27 +02:00
Terts Diepraam
cbc8427419 uudoc: update to clap 4 2022-10-14 16:47:39 +02:00
dependabot[bot]
4480d6d714
build(deps): bump smallvec from 1.9.0 to 1.10.0
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.9.0...v1.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 06:43:33 +00:00
Pat Laster
21b066a58e Why is S_IWUSR showing up as a u16 on macos 2022-10-13 20:03:35 -05:00
Pat Laster
fddc8c9d9d More readable unix write permissions for directory using libc 2022-10-13 20:03:35 -05:00
Pat Laster
a3f35a726c Add override for prompting 2022-10-13 20:03:35 -05:00
Pat Laster
e11dd50eb4 Added comments 2022-10-13 20:03:35 -05:00
Pat Laster
355136936f Fixed force rm 2022-10-13 20:03:35 -05:00
Pat Laster
3a1098489e Small fix 2022-10-13 20:03:35 -05:00
Pat Laster
3c39a57da0 Check force position in rm 2022-10-13 20:03:35 -05:00
Pat Laster
50d2948aa1 Fixed rm --force argument not forcing prompt to not show up 2022-10-13 20:03:35 -05:00
Pat Laster
6856ce0bf4 Fixed handle_writable_directory on windows 2022-10-13 20:03:35 -05:00
Pat Laster
1f50df2af6 Fixed spelling error 2022-10-13 20:03:35 -05:00
Pat Laster
30adc8e037 Added windows version of handle_writable_directory 2022-10-13 20:03:35 -05:00
Pat Laster
6245029445 rm: rm3 now passes 2022-10-13 20:03:35 -05:00
Terts Diepraam
23fc898f79 chcon: fix update to clap 4 2022-10-13 23:05:02 +02:00
Terts Diepraam
14e3c5176c realpath: require arguments again 2022-10-13 20:06:27 +02:00
Terts Diepraam
b0c200e831 env: handle - correctly again 2022-10-13 20:06:02 +02:00
Terts Diepraam
d6753d8914 uucore: remove string leak in format_usage 2022-10-13 17:55:02 +02:00
Terts Diepraam
d7b08a01b1 yes: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
bfd310553d whoami: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
53567deb0f who: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
92c4b32eeb wc: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
60d51910e6 users: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
e99969b678 uptime: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
12048cda68 unlink: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
23c8d8b0ea uniq: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
3a234b3b09 unexpand: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
db464bbeb5 uname: update to clap 4 2022-10-13 17:50:43 +02:00
Terts Diepraam
e94ef2f8b5 tty: update to clap 4 2022-10-13 17:50:43 +02:00