Commit graph

577 commits

Author SHA1 Message Date
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
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
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
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
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
Sylvestre Ledru
74624b27f1
Merge branch 'main' into refactor/add_nix_error_auto_conversion 2022-10-22 10:19:09 +02:00
Niyaz Nigmatullin
76ee0db26c uucore: migrate from winapi to windows-sys crate 2022-10-20 12:16:22 +03:00
Orhun Parmaksız
50be73d99f
refactor: add automatic conversion for nix::Errno 2022-10-19 00:13:59 +03:00
Terts Diepraam
d6753d8914 uucore: remove string leak in format_usage 2022-10-13 17:55:02 +02:00
Terts Diepraam
042bb3c4e3 cp: update to clap 4 2022-10-13 17:50:26 +02:00
Terts Diepraam
9605c7f135 uucore: update to clap 4 2022-10-13 17:50:17 +02:00
Sylvestre Ledru
6e14dea73b Fix some clippy warnings
Fixed with `cargo clippy --features unix  --fix`
and manually
2022-10-13 09:07:22 +02:00
dependabot[bot]
68f2b44c88
build(deps): bump dunce from 1.0.2 to 1.0.3
Bumps [dunce](https://gitlab.com/kornelski/dunce) from 1.0.2 to 1.0.3.
- [Release notes](https://gitlab.com/kornelski/dunce/tags)
- [Commits](https://gitlab.com/kornelski/dunce/commits/v1.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-12 16:54:02 +00:00
Terts Diepraam
f15c4f2d3e Version 0.0.16 2022-10-11 23:03:39 +02:00
Terts Diepraam
86738ce6cf ls,stat: Show more info in long format 2022-10-09 00:27:32 +02:00
Daniel Hofstetter
9e8daf92dd Replace deprecated value_of() with get_one() 2022-09-26 16:42:42 +02:00
Niyaz Nigmatullin
90babe2775 uucore: remove is_symlink function
Since Rust 1.58 there is `is_symlink` method for `Path`
2022-09-23 20:32:09 +03:00
Terts Diepraam
975a1d170d change remaining usage codes of 2 to 1 for GNU compat 2022-09-10 20:24:24 +02:00
Jeffrey Finkelstein
8458bf1387 Clippy fixes in multiple crates 2022-08-23 18:30:43 -04:00
Terts Diepraam
15180249fc Version 0.0.15 2022-08-20 13:13:22 +02:00
dependabot[bot]
6193cdbba8
build(deps): bump libc from 0.2.131 to 0.2.132
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.131 to 0.2.132.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.131...0.2.132)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-19 12:22:35 +00:00
Sylvestre Ledru
b7ea400861
Merge pull request #3837 from tertsdiepraam/remove-more-error-macros
`uucore` & `cp`: remove `show_error_custom_description` macros `show_usage_error`
2022-08-19 10:01:49 +02:00
Sylvestre Ledru
fb4ddd5310
Merge pull request #3844 from tertsdiepraam/ranges-refactor
`uucore::ranges`: Refactor, document and test
2022-08-19 09:02:35 +02:00
Terts Diepraam
003b483705 uucore/ranges: refactor and test complement 2022-08-18 21:27:32 +02:00
Terts Diepraam
7890228f82 uucore/ranges: document and test merge operation 2022-08-18 19:45:56 +02:00
Terts Diepraam
e9e9a8166f uucore/ranges: refactor FromStr impl 2022-08-18 19:45:18 +02:00
Sylvestre Ledru
88261f36dd
Merge pull request #3834 from uutils/dependabot/cargo/once_cell-1.13.1
build(deps): bump once_cell from 1.13.0 to 1.13.1
2022-08-18 13:35:59 +02:00
Terts Diepraam
b983355bc4 uucore & cp: remove show_error_custom_description macros show_usage_error 2022-08-18 10:44:59 +02:00
Sylvestre Ledru
87e3899477
Merge pull request #3832 from tertsdiepraam/simplify-encoding-handling
Simplify invalid encoding handling
2022-08-17 18:59:59 +02:00
dependabot[bot]
e465d0520f
build(deps): bump once_cell from 1.13.0 to 1.13.1
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.13.0 to 1.13.1.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.13.0...v1.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-17 16:20:25 +00:00
Terts Diepraam
ba713b6365 Simplify invalid encoding handling into two small methods of Args
The previous encoding handling was unnecessarily complex. This commit removes the enum that specifies the handling and instead has two separate methods to collect the strings either with lossy conversion or by ignoring invalidly encoded strings.
2022-08-17 15:20:20 +02:00
Terts Diepraam
5621502a95 all: remove accept_{any, complete, lossy} and ConversionResult
Outside of tests, only `accept_any` was used, meaning that this unnecessarily complicated the code. The behaviour of `accept_any` is now the default (and only) option.
2022-08-17 14:57:28 +02:00
Terts Diepraam
0ed8b97a3f uucore: remove panic encoding handling
We never want utilities to panic on invalid input and it is not currently in use, so it can be removed safely.
2022-08-17 14:29:53 +02:00
Niyaz Nigmatullin
9cd898b885 remove nix 0.24.2 dependency 2022-08-17 13:13:27 +03:00
Niyaz Nigmatullin
5af152be2c uucore/fs: add Not a directory cases handling, e.g. for trailing slashes 2022-08-15 22:47:03 +03:00
David Carlier
b5bb070777 while at it, let's do OpenBSD. 2022-08-13 10:21:30 +01:00
David Carlier
36561c9526 uucore fix NetBSD build. 2022-08-13 08:24:45 +01:00
Daniel Hofstetter
fcb7185279 Disable "broken intra doc links" lint 2022-08-12 14:48:59 +02:00
Daniel Hofstetter
c0c26c4c58 Replace deprecated values_of() with get_many() 2022-08-11 13:49:09 +02:00
Ackerley Tng
defde8c91e uucore: add parse_glob module 2022-08-09 10:36:23 +02:00
Daniel Hofstetter
7c3116330e Replace deprecated is_present() with contains_id() 2022-08-02 15:21:39 +02:00
Daniel Hofstetter
fc4544c42b bump clap from 3.1.18 to 3.2.15 2022-07-29 14:05:02 +02:00
Sylvestre Ledru
62305e67d1
Merge pull request #3719 from andrewbaptist/main
split: Don't overwrite files
2022-07-23 22:54:57 +02:00
Sylvestre Ledru
f82ada645e
Merge pull request #3731 from sylvestre/fs-doc
document some common fs functions
2022-07-22 13:29:15 +02:00
Andrew Baptist
f2cfc15a70 split: Don't overwrite files
Check that a file exists by calling create_new and changing the
interface of instantiate_current_writer to return a Result rather
than calling unwrap.
2022-07-21 12:06:13 -04:00
Sylvestre Ledru
ba44fd0e2b document some common fs functions 2022-07-20 17:51:53 +02:00
Niyaz Nigmatullin
9f2a9fa6ff uucore/fs: make function more generic 2022-07-19 17:34:52 +03:00
Niyaz Nigmatullin
80ff3b3b40 ln: change error messages, extract common code 2022-07-19 17:34:52 +03:00
Andrew Baptist
cc08e1cc3a Update to handle all the latest cargo warnings 2022-07-18 13:20:49 -04:00
dependabot[bot]
d15b95533e
build(deps): bump nix from 0.24.1 to 0.24.2
Bumps [nix](https://github.com/nix-rust/nix) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/nix-rust/nix/releases)
- [Changelog](https://github.com/nix-rust/nix/blob/v0.24.2/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.24.1...v0.24.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 06:41:18 +00:00
Niyaz Nigmatullin
4db08273b3 ln: error on --force when src=dst and dst is regular file 2022-07-18 08:17:37 +03:00
Sylvestre Ledru
882cd527ff
Merge pull request #3704 from Sciencentistguy/once_cell
Replace lazy_static with once_cell
2022-07-13 16:15:47 +02:00
Niyaz Nigmatullin
c829ecfd1d uucore/fs: get back to loop looking in windows as FileInformation
for directory is fixed
2022-07-12 17:15:16 +03:00
Jamie Quigley
1a270361c0
Replace lazy_static with once_cell 2022-07-12 14:08:30 +01:00
Terts Diepraam
6b00aec48e
Merge pull request #3602 from lendandgit/main
df: better error message when executed in a chroot without /proc #3601
2022-07-11 23:02:39 +02:00
Niyaz Nigmatullin
da5808d4ac
ls: add already listed message (#3707)
* ls: handle looping symlinks infinite printing

* ls: better coloring and printing symlinks when dereferenced

* tests/ls: add dereferencing and symlink loop tests

* ls: reformat changed using rustfmt

* ls: follow clippy advice for cleaner code

* uucore/fs: fix FileInformation to open directory handles in Windows as
well
2022-07-11 17:18:58 +02:00
Niyaz Nigmatullin
9d285e953d
Realpath symlinks handling, solves issue #3669 (#3703) 2022-07-10 16:49:25 +02:00
leon
9d554751ca df: better error message when executed in a chroot without /proc #3601 2022-07-07 15:24:00 +02:00
Sylvestre Ledru
38f5a47f76
Merge pull request #3698 from uutils/dependabot/cargo/once_cell-1.13.0
build(deps): bump once_cell from 1.12.0 to 1.13.0
2022-07-06 08:56:12 +02:00
dependabot[bot]
6a335236c1
build(deps): bump once_cell from 1.12.0 to 1.13.0
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.0...v1.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-05 06:51:26 +00:00
Sylvestre Ledru
7ca2ae4627
spell: Ignore backport 2022-07-05 08:31:45 +02:00
Jeffrey Finkelstein
df83d59b2d uucore: add backport for Path::is_symlink()
Add a `uucore::fs::is_symlink()` function that takes in a
`std::path::Path` and decides whether the given path is a symbolic
link. This is essentially a backport of the `Path::is_symlink()`
function that appears in Rust version 1.58.0. This commit also
replaces some now-duplicate code in `chmod`, `cp`, `ln`, and `rmdir`
that checks whether a path is a symbolic link with a call to
`is_symlink()`.

Technically, this commit slightly changes the behavior of
`cp`. Previously, there was a line of code like this

    if fs::symlink_metadata(&source)?.file_type().is_symlink() {

where the `?` operator propagates an error from `symlink_metadata()`
to the caller. Now the line of code is

    if is_symlink(source) {

in which any error from `symlink_metadata()` has been converted to
just be a `false` value. I believe this is a satisfactory tradeoff to
make, since an error in accessing the file will likely cause an error
later in the same code path.
2022-07-04 17:25:52 -04:00
Gergely Kalas
4f043ff57f Fix 'wc' gnu test-suite compatibility #3678
This change will extract a utility already present in ls to uucore.
This utility is used by dir and vdir too, which are adjusted to
look it up in uucode. No further changes to ls, dir or dirv intended.

The change here largely fiddles with the output of uu_wc to match
that of GNU wc. This is the case to the extent to make unit tests
pass, however, there are differences remaining. One specific
difference I did not tackle is that GNU wc will not align the
output columns (compute_number_width() -> 1) in the specific case
of the input for --files0-from=- being a named pipe, not real stdin.
This difference can be triggered using the following two invocations.
  - wc --files0-from=- < files0 # use a named pipe, GNU does align
  - cat files0- | wc --files0-from=- # use real stdin, GNU does not
    align.
2022-07-01 16:43:09 +02:00
Daniel Hofstetter
72aa2ff0ab uucore: fix invalid enum variant in docstring 2022-06-16 14:43:01 +02:00
dependabot[bot]
5a42c06b25
build(deps): bump once_cell from 1.11.0 to 1.12.0
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.11.0...v1.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 19:18:28 +00:00
Terts Diepraam
eae07adfb1
Version 0.0.14 (#3553)
Version 0.0.14
2022-05-22 19:57:19 +02:00
Daniel Hofstetter
27dd59635a uucore: add InvalidSuffix to ParseSizeError 2022-05-17 15:37:49 +02:00
Sylvestre Ledru
7792af336e
Merge pull request #3535 from uutils/dependabot/cargo/libc-0.2.126
build(deps): bump libc from 0.2.125 to 0.2.126
2022-05-17 12:32:22 +02:00
Terts Diepraam
eac0760905
Merge pull request #3528 from jfinkels/clippy-fixes
all: clippy fixes
2022-05-17 11:57:47 +02:00
dependabot[bot]
cd743c2fd1
build(deps): bump libc from 0.2.125 to 0.2.126
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.125 to 0.2.126.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.125...0.2.126)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 07:13:42 +00:00
Sylvestre Ledru
40095e1b50
Merge pull request #3438 from jfinkels/chown-nonexistent-user-id
chown: allow setting arbitrary numeric user ID
2022-05-14 09:20:01 +02:00
Jeffrey Finkelstein
896bbec760 all: clippy fixes 2022-05-13 22:47:56 -04:00
Terts Diepraam
0acfa07d77 all: add value hints 2022-05-13 16:15:50 +02:00
Jeffrey Finkelstein
5713de4d93 fixup! uucore(perms): better support nameless uids, gids 2022-05-12 08:41:17 +02:00
Jeffrey Finkelstein
08b6dd4975 uucore(perms): better support nameless uids, gids
Update the `wrap_chown()` function to support user IDs and group IDs
that do not correspond to named users or groups, respectively. Before
this commit, the result from `uid2usr()` and `gid2grp()` calls were
unwrapped because we assumed a user name or group name, respectively,
existed. However, this is not always true: for example, running the
command `sudo chown 12345 f` works even if there is no named user with
ID 12345. This commit expands `wrap_chown()` to work even if no name
exists for the user or group.
2022-05-12 08:41:17 +02:00
Jan Scheer
d906f09e6e stat: improve handling of stdin/fifo (fix #3485)
* fix https://github.com/uutils/coreutils/issues/3485
* improve the workaround from #3280
* add tests
2022-05-11 12:59:25 +02:00
Sylvestre Ledru
56264ebece
Merge branch 'main' into 2884-time-0.3 2022-05-07 20:57:14 +02:00
Terts Diepraam
7b84261df4 uucore/error: add custom exit codes for clap errors
This allows us to use clap errors as UResult and specify the exit code for invalid arguments per util.
2022-05-04 21:32:04 +02:00
Sylvestre Ledru
9b69e6fd47
Merge branch 'main' into 2884-time-0.3 2022-05-02 18:14:14 +02:00
Terts Diepraam
0322d4633e
Merge pull request #3061 from hbina/hbina-printf-default-left-justify-legth
printf: Default left-justify integer conversion to 1 width
2022-05-02 17:50:10 +02:00
dependabot[bot]
de6aa6de9b
build(deps): bump libc from 0.2.124 to 0.2.125
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.124 to 0.2.125.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.124...0.2.125)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 06:36:41 +00:00
Hanif Ariffin
2e60dce11a printf: Default left-justify integer conversion to 1 width
When using left-justify with integer conversion (like `printf '%-o'`),
default the minimum width to 1.

Closes: https://github.com/uutils/coreutils/issues/3050

Signed-off-by: Hanif Ariffin <hanif.ariffin.4326@gmail.com>
2022-05-01 20:00:09 +02:00
Sylvestre Ledru
2b11d77395 time: Improve the l&f 2022-05-01 17:01:13 +02:00
Sylvestre Ledru
10eaaae272 time: take in account the local tz 2022-05-01 17:00:41 +02:00
Sylvestre Ledru
e23dd68715 time: Force the display of the tz sign 2022-05-01 17:00:41 +02:00
Sylvestre Ledru
3a576f2441 time: Various fixes 2022-05-01 17:00:35 +02:00
Sylvestre Ledru
ca670148f2 build(deps): bump time from 0.1.43 to 0.3.9
Bumps [time](https://github.com/time-rs/time) from 0.1.43 to 0.3.9.
- [Release notes](https://github.com/time-rs/time/releases)
- [Changelog](https://github.com/time-rs/time/blob/main/CHANGELOG.md)
- [Commits](https://github.com/time-rs/time/compare/v0.1.43...v0.3.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-01 16:58:47 +02:00
dependabot[bot]
3cee681e82 build(deps): bump libc from 0.2.121 to 0.2.124
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.121 to 0.2.124.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.121...0.2.124)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-26 11:23:42 +02:00
Sylvestre Ledru
51c0893564
Merge pull request #3434 from uutils/dependabot/cargo/z85-3.0.5
build(deps): bump z85 from 3.0.4 to 3.0.5
2022-04-25 23:07:54 +02:00
dependabot[bot]
8f8aa61e6a build(deps): bump z85 from 3.0.4 to 3.0.5
Bumps [z85](https://github.com/decafbad/z85) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/decafbad/z85/releases)
- [Commits](https://github.com/decafbad/z85/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 08:13:54 +02:00
Ryan Zoeller
363a2a5611 Upgrade nix to 0.24.1, ctrlc to 3.2.2
Limit nix features, which should help compile times slightly.

Replace usage of deprecated nix functionality with std equivalent.
2022-04-25 08:13:20 +02:00
Daniel Hofstetter
88c2b445e5 Add "nix" to Cargo.toml 2022-04-22 17:17:17 +02:00
Justin Tracey
1f025c19af address libc weirdness on 32 bit android 2022-04-20 08:44:49 +02:00
Justin Tracey
2a0d58d060 get android builds to compile and pass tests 2022-04-20 08:44:49 +02:00
Justin Tracey
5e7d58650d fix null pointer derefs
The code for creating a Passwd from the fields of the raw syscall result
assumed that the syscall would return valid C strings in all non-error
cases. This is not true, and at least one platform (Android) will
populate the fields with null pointers where they are not supported.

To fix this and prevent the error from happening again, this commit
changes `cstr2string(ptr)` to check for a null pointer, and return an
`Option<String>`, with `None` being the null pointer case. While
arguably it should be the caller's job to check for a null pointer
before calling (since the safety precondition is that the pointer is to
a valid C string), relying on the type checker to force remembering this
edge case is safer in the long run.
2022-04-20 08:44:49 +02:00
dependabot[bot]
90b80617b9 build(deps): bump os_display from 0.1.2 to 0.1.3
Bumps [os_display](https://github.com/blyxxyz/os_display) from 0.1.2 to 0.1.3.
- [Release notes](https://github.com/blyxxyz/os_display/releases)
- [Changelog](https://github.com/blyxxyz/os_display/blob/master/CHANGELOG.md)
- [Commits](https://github.com/blyxxyz/os_display/compare/v0.1.2...v0.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 14:54:10 +02:00
Terts Diepraam
af32f7a117 Dont use from_* method names that take self
This was reported as an error in Clippy 1.60.
2022-04-11 22:50:36 +02:00