Commit graph

7261 commits

Author SHA1 Message Date
Sylvestre Ledru
adcc548f7c cksum: Allow the indiv build 2024-06-25 19:05:28 +02:00
Sylvestre Ledru
2e704b8572 Address review comments 2024-06-25 19:01:04 +02:00
Sylvestre Ledru
ab2cc2f17a cksum base64: update the GNU test to manage our output 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
6922e7f057 cksum/hashsum: Simplify the determine_regex function 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
c2292a8da6 cksum/hashsum: Move the algo mgmt into a dedicated function 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
e7898ab32a cksum/hashsum: Move the algo mgmt into a dedicated function 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
520907e22b cksum/hashsum: Move the opening into a dedicated function 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
a6bae64dde cksum/hashsum: use a struct to keep the results 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
e6aad95055 cksum/hashsum: move the file mgmt into a function 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
cc8bda5def cksum/hashsum: move to thiserror 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
edae51d1a6 cksum/hashsum: move to quick-error 2024-06-25 19:00:23 +02:00
Sylvestre Ledru
66ccb1a479 cksum/hashsum: add support of --check with base64 2024-06-25 19:00:23 +02:00
sreehari prasad
92665144c9
ls: gnu color-norm test fix (#6481) 2024-06-24 21:38:10 +02:00
Daniel Hofstetter
92c3de5387
Merge pull request #6144 from sylvestre/dired
ls --dired: adjust our code after GNU v9.5
2024-06-24 13:41:11 +02:00
Sylvestre Ledru
ececddd672 ls: If we have --dired --hyperlink, we don't show dired but we still want to see the
long format

Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2024-06-24 10:27:37 +02:00
Sylvestre Ledru
4d705621e6 ls: --format will override the --dired option
Closes: #6488

Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2024-06-23 21:13:37 +02:00
Sylvestre Ledru
276bebcf14 prepare version 0.0.27 2024-06-23 00:24:02 +02:00
Christian von Elm
0ae6d43536
Refuse to translate if set2 contains more than one unique characters and set1 contains a character class (#6472)
* Refuse to translate if set2 contains > 1 unique characters
2024-06-22 19:30:39 +02:00
Anirban Halder
2774274cc2
`uptime`: Support files in uptime (#6400) 2024-06-22 13:06:03 +02:00
Sylvestre Ledru
cd44a3d1fd ls --dired: v9.5 --hyperlink is ignored if passed first
Manages cases like:
$ ls -R --dired --hyperlink a2
will show hyperlink
$ ls -R --hyperlink --dired a2
won't
2024-06-22 09:32:21 +02:00
Sylvestre Ledru
da11981026 ls --dired: v9.5 automatically set --format=long 2024-06-21 23:32:20 +02:00
Laurent Cheylus
a5e889c78d
shuf: use usize::MAX instead of std::usize::MAX
Fix warning from legacy_numeric_constants lint

Fix uutils/coreutils#6478

Signed-off-by: Laurent Cheylus <foxy@free.fr>
2024-06-19 11:18:40 +02:00
Daniel Hofstetter
94295f9bd7 od: use u64::MAX instead of max_value()
to fix warning from legacy_numeric_constants lint
2024-06-18 03:10:33 +02:00
sreehari prasad
e46ad30434
gnu cp-parents test case (#6446) 2024-06-17 11:16:26 +02:00
Christian von Elm
a46e4fd290 Refuse to translate if set1 is longer than set2 and set2 ends in a character class
tr [:lower:]a [:upper:]

fails in GNU tr, so print an error for tr too.
2024-06-15 12:38:19 +02:00
Sylvestre Ledru
82468d1eb4
Merge pull request #6455 from cakebaker/bump_itertools
Bump `itertools` and fix use of deprecated function
2024-06-14 12:43:44 +02:00
Daniel Hofstetter
97c1633b5e clippy: fix warnings introduced by Rust 1.79 2024-06-14 07:55:31 +02:00
Daniel Hofstetter
38344edacf
Merge pull request #6445 from cvonelm/6341-tr-unaligned-upper
tr: A [:lower:]/[:upper:] in set2 must be matched in set1
2024-06-10 10:52:08 +02:00
Daniel Hofstetter
cb160eebe9 pr: use chunk_by instead of deprecated group_by 2024-06-06 10:56:11 +02:00
TO19
303e1e9ae8 seq: fix typo in benchmarking documentation file 2024-06-05 00:31:26 +02:00
Daniel Hofstetter
06d5e95716
uucore: enable sum feature for checksum feature (#6450) 2024-06-04 15:29:55 +02:00
Daniel Hofstetter
f56e121eb0
Merge pull request #6431 from sylvestre/refactor-hashsum-cksum
cksum/hashsum: refactor the common code.
2024-06-04 09:06:35 +02:00
Sylvestre Ledru
1cbb4d9752 cksum/hashsum: improve the tests and wording 2024-06-03 19:43:20 +02:00
Sylvestre Ledru
773d8cfbc6 cksum/hashsum: fix the windows tests + improve some 2024-06-02 15:46:55 +02:00
Christian von Elm
7e8aaa8ad4 tr: A [:lower:]/[:upper:] in set2 must be matched in set1
If there is a [:lower:] or [:upper:] in set2, then there must be a [:lower:] or [:upper:] at the
same logical position in set1

So

tr -t [:upper:] [:lower:] works
tr -t 1[:upper:] [:lower:] doesnt
2024-06-02 14:22:17 +02:00
Sylvestre Ledru
b1b6f28b76 cksum/hashsum: add some words in the spell skip 2024-06-01 20:28:53 +02:00
sreehari prasad
8cac375ddd
cp: gnu test case preserve-mode fix (#6432) 2024-05-30 21:12:55 +02:00
Sylvestre Ledru
6e06c2a5ea cksum/hashsum: fix clippy warnings 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
193a81bcc3 cksum/hashsum: create a new error type & use it 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
bf8b0df22f cksum/hashsum: improve the display of errors 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
1cf6700023 cksum/hashsum: manage the '*' start correctly 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
84d90fcbdf cksum/hashsum: try to detect the format faster the first line 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
2c83b28d18 hashsum: improve the file verification algo.
We have 3 different kinds of input:
* "algo (filename) = checksum"
  example: `BLAKE2 (a) = bedfbb90d858c2d67b7ee8f7523be3d3b54004ef9e4f02f2ad79a1d05bfdfe49b81e3c92ebf99b504102b6bf003fa342587f5b3124c205f55204e8c4b4ce7d7c`
* "checksum  filename"
  example: `60b725f10c9c85c70d97880dfe8191b3  a`
* "checksum filename"
  example: `60b725f10c9c85c70d97880dfe8191b3 a`

These algo/regexp are tricky as files can be called "a, " b", " ", or "*c".
We look at the first time to analyze the kind of input and reuse the same regexp then.
2024-05-29 09:08:04 +02:00
Sylvestre Ledru
6acc8e695f hashsum: Implement the quiet mode 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
89b7a1a8fb hashsum: handle the case when md5sum is used but the file contains a different algo 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
0882eea07c cksum/hashsum: factor the error structure and use it more 2024-05-29 09:08:04 +02:00
Sylvestre Ledru
dbe7a20e08 cksum/hashsum: refactor the common code.
Summary of the change:
* Move the common code into checksum
* Create a structure HashAlgorithm to handle the algorithm (instead of the 3 variables)
* Use the same function for cksum & hashsum for --check (perform_checksum_validation)
* Use the same for function for the hash generation (digest_reader)
* Add unit tests
* Add integration tests
* Fix some incorrect tests
2024-05-29 09:08:00 +02:00
Paul Hedderly
4824033385 src/uucore/src/lib/features/fsext.rs: Add magic for bcachefs
Enables stat to recogise a BcacheFS filesystem - for example:

  $ ./target/debug/stat -f /
  File: "/"
    ID: 64b40636928f3ee7 Namelen: 512     Type: bcachefs
  Block size: 512        Fundamental block size: 512
  Blocks: Total: 2044464374 Free: 295830135  Available: 291278902
  Inodes: Total: 2375400624 Free: 2366641080
2024-05-28 12:23:21 +01:00
Jeremy Smart
3bc4df4075
df: fix size column padding 2024-05-25 16:08:23 -04:00
Christian von Elm
0d1bde2879 tr: disallow classes besides [:upper:]/[:lower:] in set2 when translating
Fixes issue #6342
2024-05-23 22:06:57 +02:00
Walid
ebcd86df07
env: adds --ignore-signal (#6377)
* env: adds --ignore-signal
This commit implement #6164.

* env: handle STOP signal and fix styling issue

* env: fix encoded bytes

* env: adds SAFETY comment and handle special signals in ignore_signal

* env: fix parsing to have compatible behaviour

* env: remove derive from Options

* env: changed safety comment, handle duplications after parsing and non-unix cfg

* env: adds tests for ignore-signal parsing and invalid and special signals

* env: change signal values to be non-constant

* env: adds testing for signal ignoring

* env: styling and remove unix specific derive

* test_env: add SIGSTOP to cspell workspace wordlist

* env: makes signal handling unix specific

* env: make ignore-signal function invocation unix specific

* test_env: make signal vector use slices ref instead of vec (linter)

* env: makes ignore-signal in options unix specific

* test_env: add unix specific import
2024-05-23 22:01:39 +02:00
Daniel Hofstetter
a816960c33 tests: remove 'target_pointer_width = "128"' 2024-05-20 23:27:53 +02:00
sreehari prasad
f2f4a424de
cp: parent-perm-race gnu fix (#6403) 2024-05-20 08:17:17 +02:00
Daniel Hofstetter
00b2dc3b56 pinky: use UTC if offset can't be determined 2024-05-19 13:54:16 +02:00
sreehari prasad
2e16cbbd7a
cp: link-deref gnu test fix (#6378)
Co-authored-by: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>
2024-05-19 10:14:29 +02:00
Ben Wiederhake
b718f954e8
Merge pull request #6390 from sylvestre/cksum-check
cksum: implement check (Closes: #5705)
2024-05-18 23:46:58 +02:00
Sylvestre Ledru
fc80c474b4
Merge pull request #6413 from cakebaker/uucore_utmpx_fix_login_time
uucore/utmpx: use UTC if offset can't be resolved
2024-05-18 22:17:38 +02:00
Daniel Hofstetter
90e023a9de uucore/utmpx: use UTC if offset can't be resolved 2024-05-18 16:53:36 +02:00
Sylvestre Ledru
3156ad8298
Merge pull request #6412 from sylvestre/hashsum-fix
hashsum: improve the blake2 --tag export
2024-05-18 16:34:43 +02:00
Sylvestre Ledru
ab2d2488a3 hashsum: simplify the println 2024-05-18 16:16:29 +02:00
Sylvestre Ledru
a9a11f486e hashsum: rename the blake2b algo with --tag + manage the different length 2024-05-18 16:16:26 +02:00
Sylvestre Ledru
7a46ea371f hashsum: rename the variable for something more explicit 2024-05-18 10:06:53 +02:00
Sylvestre Ledru
514d810371 cksum: improve the blake2b detection algo corner case 2024-05-17 22:09:41 +02:00
Sylvestre Ledru
db58d2b6b5 cksum: when length/bits can't be divided by 8, generate an error 2024-05-17 22:08:53 +02:00
Sylvestre Ledru
1b78102a6b cksum: fails in case of unknown algo 2024-05-17 20:21:14 +02:00
Daniel Hofstetter
a8483e4896 cp: remove 'target_os = "macos-12"' 2024-05-16 16:26:50 +02:00
Sylvestre Ledru
9c52ca8d55 cksum: also handle the case when the line start with ' \' 2024-05-15 11:46:58 +02:00
Dorian Péron
105024e708 ls: Fix quoting alignment 2024-05-15 09:59:38 +02:00
Sylvestre Ledru
115b203b22 cksum: also show the error on stdout 2024-05-14 23:27:50 +02:00
Sylvestre Ledru
07d579c40a cksum: handle the empty lines (and just spaces) 2024-05-14 23:27:50 +02:00
Sylvestre Ledru
bbd80e4061 cksum: various improvements/fixes 2024-05-14 23:27:47 +02:00
Sylvestre Ledru
843275a136 cksum/blake2b: improve the error management 2024-05-14 23:21:56 +02:00
Sylvestre Ledru
8ddb2131df cksum/blake2b, when length=512, don't add it in the line 2024-05-14 23:21:56 +02:00
Sylvestre Ledru
1aec8b407d chksum: add support of --check --algorithm=xxx 2024-05-14 23:21:56 +02:00
Sylvestre Ledru
0b04bcaf9a uucore: create a new function to manage the warning/error display 2024-05-14 23:21:53 +02:00
Sylvestre Ledru
81500ae3b8 cksum: implement check & strict 2024-05-12 21:20:58 +02:00
Sylvestre Ledru
5f0b48e649 cksum: use the qualified import to make its provenance clear 2024-05-12 21:20:58 +02:00
Sylvestre Ledru
7e33650c8c cksum: move the length mgmt into a function + add tests 2024-05-12 21:20:58 +02:00
Anirban Halder
1a5639b7d2
Fix ls: panicking on dangling symlink with --color=auto -l (#6346)
* Fixed unwrap being called on dereferenced dangling symlink

* Added test

* Switched to regex matching in test

* Remove unnecessary mkdir call

* Modified documentation of the test and added assertion of the colors

* Fixed a typo
2024-05-11 21:07:44 +02:00
Anirban Halder
88d9d46abc Added test for dangling symlink in target directory 2024-05-08 23:50:33 +02:00
Anirban Halder
1f81912b3c Added assertion of stderr strings for macos and windows and fixed lints 2024-05-08 23:50:33 +02:00
Anirban Halder
f7e55b1322 Added overwrite detection for existing symlinks 2024-05-08 23:50:33 +02:00
Daniel Hofstetter
8078fca99b stdbuf: rename dragonflybsd to dragonfly 2024-05-08 20:19:42 +02:00
Daniel Hofstetter
50988f5d07 uucore: remove support for Bitrig 2024-05-08 15:43:26 +02:00
Sylvestre Ledru
ee2772925a cksum: --tag & --untagged - the order of usage matters. manage it 2024-05-07 20:24:25 +02:00
Sylvestre Ledru
9e080a3684 cksum: handle a corner case 2024-05-07 20:24:25 +02:00
Sylvestre Ledru
234f2f9508 cksum: handle an error like GNU 2024-05-07 20:24:25 +02:00
Sylvestre Ledru
10d8fd6f98 cksum: add binary and prepare the rest 2024-05-07 20:24:25 +02:00
Sylvestre Ledru
dc5342d115 hashsum: allow multiple usage of -l and take the last one
tested by gnu/tests/cksum/b2sum.sh
2024-05-07 20:24:25 +02:00
Daniel Hofstetter
b64183b0de fmt: use "unwrap()" instead of "?" in tests 2024-05-07 20:20:59 +02:00
Ben Wiederhake
ea18cfd3d8 fmt: fix error priority, make goal-errors more helpful 2024-05-06 19:36:39 +02:00
ahmadabd
a3d05e5945 fmt: value of minlength should not be negative
closes #6354
2024-05-05 21:08:38 +02:00
Ben Wiederhake
e76f92c212 fmt: accept repeated arguments 2024-05-05 16:13:46 +02:00
Laurent Cheylus
14258b12ad
tail: disable clippy::assigning_clones on OpenBSD
- Avoid error on OpenBSD stable/7.5 with clippy (lint)
- assigning_clones added in Rust 1.78.0 (1.76 used on OpenBSD 7.5)
https://rust-lang.github.io/rust-clippy/master/index.html#/assigning_clones

Signed-off-by: Laurent Cheylus <foxy@free.fr>
2024-05-05 11:36:35 +02:00
Laurent Cheylus
7a556a6e82
cp: disable clippy::assigning_clones on OpenBSD
- Avoid error on OpenBSD stable/7.5 with clippy (lint)
- assigning_clones added in Rust 1.78.0 (1.76 used on OpenBSD 7.5)
https://rust-lang.github.io/rust-clippy/master/index.html#/assigning_clones

Signed-off-by: Laurent Cheylus <foxy@free.fr>
2024-05-05 11:36:35 +02:00
Laurent Cheylus
225a1052a7
df: disable clippy::assigning_clones on OpenBSD
- Avoid error on OpenBSD stable/7.5 with clippy (lint)
- assigning_clones added in Rust 1.78.0 (1.76 used on OpenBSD 7.5)
https://rust-lang.github.io/rust-clippy/master/index.html#/assigning_clones

Signed-off-by: Laurent Cheylus <foxy@free.fr>
2024-05-05 11:36:35 +02:00
Jalil David Salamé Messina
ff1a03c284 tr: don't truncate when not translating
An additional issue was found while reviewing #6340, check [this thread][1]. A summary is:

- `tr` ignores the `-t`/`--truncate-set1` flag when not translating
- Not translating is defined as `-d` was passed, or one set was passed.

[1]: https://github.com/uutils/coreutils/pull/6340#discussion_r1590007053
2024-05-04 19:55:49 +02:00
Jalil David Salamé Messina
3c47f27698 tr: calculate complement set early
Fixes #6163 and adds a test to verify that a regression is not caused.

Instead of inverting the conditions to check (e.g. delete characters **not** present in set1) invert
set1 when passed the complement flag (`-c`, `-C`, `--complement`). This is done by calculating set1
then "inverting" it by subtracting from the "full" (universe) set (0..=u8::MAX).

This fixes issue 6163 because it was caused by a combination of the `-c` and `-t` flag. `-c` is the
abovementioned complement flag and `-t`/`--truncate-set1` truncates set1 to the length of set2. What
happened in issue 6163 is that `set1={b'Y'}` and `set2={b'Z'}`, when truncated set1 stays the same
and we proceed. The problem is GNU utils does not consider set1 to be `{b'Y'}`, but the complement
of `{b'Y'}`, that is `U \ {b'Y'}={0, 1, ..., b'X', b'Z', ...}`, thus it is truncated to `{0}`.

We can verify this by doing: `printf '\0' | tr -c -t Y Z`, which prints `Z` to stdout as expected.

Additionally, by calculating the complement of set1 we no longer need to consider the complement
flag when doing the translate operation, this allows us to delete a lot of code.
2024-05-04 19:55:49 +02:00
Daniel Hofstetter
c1942daeb1
Merge pull request #6328 from uutils/renovate/proc-macro2-1.x
fix(deps): update rust crate proc-macro2 to 1.0.81
2024-05-03 08:50:52 +02:00
renovate[bot]
e5c9796c4b
fix(deps): update rust crate proc-macro2 to 1.0.81 2024-05-03 05:41:47 +00:00