Terts Diepraam
e4eac825fb
ls: adapt to standardized error handling
2021-06-28 13:49:57 +02:00
Terts Diepraam
60e4621c3b
uucore_procs: add temporary proc macro gen_uumain for standardized error handling
2021-06-28 13:49:56 +02:00
Terts Diepraam
43bfec7170
uucore/error: add macros for standardized error handling
2021-06-28 13:49:45 +02:00
Terts Diepraam
66b1ac019d
uucore/error: add standardized error handling (adds UResult & UError)
2021-06-28 13:49:35 +02:00
Syukron Rifail M
27e0507844
du: more tests
2021-06-28 07:51:17 +07:00
Syukron Rifail M
d8a33da5b3
du: add --inodes
2021-06-28 07:51:17 +07:00
Andreas Hartmann
1a43a94e31
install: Apply rustfmt
2021-06-27 17:59:04 +02:00
Michael Debertol
d3732e08c4
sort: disable -o with -C and -c
2021-06-27 16:21:18 +02:00
Michael Debertol
2ebca384c6
all utils: enable wrap_help
...
This makes clap wrap the help text according to the terminal width,
which improves readability for terminal widths < 120 chars,
because clap defaults to a width of 120 chars without this feature.
2021-06-27 16:17:10 +02:00
Michael Debertol
0dda72eb60
coreutils: better errors for invalid args for completions
...
Use clap to extract command line arguments. This generates much better
error messages.
2021-06-27 16:07:43 +02:00
Michael Debertol
233a778963
sort/ls: implement version cmp matching GNU spec
...
This reimplements version_cmp, which is used in sort and ls to sort
according to versions.
However, it is not bug-for-bug identical with GNU's implementation.
I reported a bug with GNU here:
https://lists.gnu.org/archive/html/bug-coreutils/2021-06/msg00045.html
This implementation does not contain the bugs regarding the handling of
file extensions and null bytes.
2021-06-27 15:29:17 +02:00
Andreas Hartmann
df41fed640
install: Mark '-S', '-b' and '--backup' as implemented
...
Removes the "unimplemented" notice from the respective help texts. Stop
printing errors if the options are supplied via CLI.
2021-06-27 09:54:55 +02:00
Andreas Hartmann
5437985705
install: Implement '--backup' and '-b'
...
Adds the ability to perform file backups before installing newer files on top
of existing ones. Adds a status message about backups to stdout if running in
verbose mode.
2021-06-27 09:54:17 +02:00
Andreas Hartmann
49a9f359bb
install: Make use of 'backup_controls' for '--backup' opts
...
Use the methods and types offered by the 'backup_controls' module to implement
the logic for backing up files instead of overwriting.
2021-06-27 09:54:07 +02:00
Hanif Bin Ariffin
4778a64989
ls: Refactored options and other long constants to fix formatting
...
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
Keep one of the texts in-place
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
Reduced the fix to just formatting changes
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
2021-06-27 14:55:55 +08:00
Andreas Hartmann
a85adf3c3f
install: Internally rename short '-b' option
...
Rename from OPT_BACKUP_2 to a more descriptive name "OPT_BACKUP_NO_ARGS".
2021-06-26 00:27:08 +02:00
Andreas Hartmann
3155cd510f
install: Fix argument parsing for '--backup'
...
The '--backup' option would previously accept arguments separated from the
option either by a space or an equals sign. The GNU implementation strictly
requires an "equals" for argument separation.
As the argument to '--backup' is optional, the equals sign mustn't be ommited
as otherwise there is no way to tell a file argument apart from an argument
that's meant for the '--backup' option. This ensures that if '--backup' is
present it either has no further associated arguments (i.e. fallback to the
default), or the arguments are separated by an equals sign.
2021-06-26 00:27:08 +02:00
Andreas Hartmann
211af9a3ea
backup_control: Add todo for gnu compliant behavior
...
The logic behind the file-backup implementation currently doesn't comply 100%
with what the GNU manual [1] describes. Adds a TODO so it isn't forgotten.
[1]: https://www.gnu.org/software/coreutils/manual/html_node/Backup-options.html
2021-06-26 00:27:08 +02:00
Michael Debertol
73cfcc27e7
cp: insert some spaces into the help text
2021-06-25 21:23:45 +02:00
Michael Debertol
2e027bf45d
true, false: enable --help and --version
2021-06-25 21:23:45 +02:00
Michael Debertol
0fec449de3
mkfifo: make rustfmt work
2021-06-25 21:23:45 +02:00
Michael Debertol
a8d62b9b23
fmt: fix indentation for help
2021-06-25 21:23:45 +02:00
Michael Debertol
a9e79c72c7
uutils: enable shell completions
...
This adds a hidden `completion` subcommand to coreutils. When invoked with
`coreutils completion <utility> <shell>` a completion file will be printed
to stdout. When running `make install` those files will be created for all
utilities and copied to the appropriate locations.
`make install` will install completions for zsh, fish and bash; however,
clap also supports generating completions for powershell and elvish.
With this patch all utilities are required to have a publich uu_app function
that returns a clap::App in addition to the uumain function.
2021-06-25 21:23:45 +02:00
Michael Debertol
0531153fa6
uutils: move clap::App creation to separate functions
2021-06-25 21:23:45 +02:00
Michael Debertol
004b5d1b38
format: formatting
2021-06-25 19:35:33 +02:00
Michael Debertol
548a895cd6
sort: compatibility of human-numeric sort
...
Closes #1985 .
This makes human-numeric sort follow the same algorithm as GNU's/FreeBSD's sort.
As documented by GNU in https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html ,
we first compare by sign, then by si unit and finally by the numeric value.
2021-06-25 18:19:00 +02:00
Sylvestre Ledru
fef8761ac1
Merge pull request #2443 from miDeb/sort/data-oriented
...
sort: separate additional data from the Line struct
2021-06-24 21:19:23 +02:00
Sylvestre Ledru
ab5d581fa4
Merge pull request #2439 from tertsdiepraam/numfmt/round-and-c-locale
...
`numfmt`: add `--round` and other minor improvements
2021-06-24 21:18:59 +02:00
Sylvestre Ledru
5d7cf61128
Merge pull request #2429 from miDeb/install/target-dir
...
install: support --target-directory
2021-06-24 21:06:44 +02:00
Michael Debertol
8bebfbb3e6
sort: don't store slices for general numeric sort
...
Gerenal numeric sort works by comparing pre-parsed floating point
numbers. That means that we don't have to store the &str the float was
parsed from.
As a result, memory usage was slightly reduced for general numeric sort.
2021-06-24 18:33:33 +02:00
Sylvestre Ledru
3b2d0d17fa
Merge pull request #2446 from jhscheer/groups_gnu_testsuite
...
groups: fixes to pass GNU's Testsuite
2021-06-23 20:15:12 +02:00
Sylvestre Ledru
44c770d234
Merge pull request #2450 from jhscheer/id_refactor_identifier
...
id: refactor identifiers
2021-06-23 19:05:57 +02:00
Jan Scheer
11f36eae3b
tests/groups: fix/add tests for (multiple) username(s)
2021-06-23 16:50:03 +02:00
Sylvestre Ledru
d40fc65ee6
Merge branch 'master' into numfmt/round-and-c-locale
2021-06-23 12:39:55 +02:00
Sylvestre Ledru
a73e71ba74
Merge pull request #2437 from miDeb/cp/reflink-auto
...
cp: default to --reflink=auto on linux and macos
2021-06-23 12:37:44 +02:00
Sylvestre Ledru
87eaf6e80a
Merge pull request #2447 from jhscheer/locale_c
...
fix some issues with locale (replace "LANGUAGE" with "LC_ALL")
2021-06-23 12:36:40 +02:00
Jan Scheer
4b3da59b0e
id: refactor identifiers
...
* change of identifier names and spelling according to the suggestions in the review of #2446
2021-06-23 12:27:01 +02:00
Jan Scheer
c0be979611
fix some issues with locale (replace "LANGUAGE" with "LC_ALL")
...
`LANGUAGE=C` is not enough, `LC_ALL=C` is needed as the environment
variable that overrides all the other localization settings.
e.g.
```bash
$ LANGUAGE=C id foobar
id: ‘foobar’: no such user
$ LC_ALL=C id foobar
id: 'foobar': no such user
```
* replace `LANGUAGE` with `LC_ALL` as environment variable in the tests
* fix the the date string of affected uutils
* replace `‘` and `’` with `'`
2021-06-23 11:30:28 +02:00
Sylvestre Ledru
178399c20e
Merge pull request #2449 from miDeb/temp-win
...
Make tests pass on a windows VM
2021-06-23 08:40:30 +02:00
Michael Debertol
d60afb8947
mkdir: note that -m is not supported on windows
2021-06-23 00:59:51 +02:00
Michael Debertol
4a956f38b9
sort: separate additional data from the Line struct
...
Data that was previously boxed inside the `Line` struct was moved to
separate vectors. Inside of each `Line` remains only an index that
allows to access that data.
This helps with keeping the `Line` struct small and therefore reduces
memory usage in most cases.
Additionally, this improves performance because one big allocation (the
vectors) are faster than many small ones (many boxes inside of each
`Line`). Those vectors can be reused as well, reducing the amount of
(de-)allocations.
2021-06-23 00:36:05 +02:00
Michael Debertol
622504467f
mktemp: note that windows uses a different env var for tmpdir
...
On windows `std::env::temp_dir` uses the `TMP` environment variable
instead of `TMPDIR`.
2021-06-22 17:44:45 +02:00
Sylvestre Ledru
e48ff9dd9e
Merge pull request #2441 from siebenHeaven/ls_dangling_symlinks
...
ls: Fix problems dealing with dangling symlinks
2021-06-21 22:34:15 +02:00
Sylvestre Ledru
a982030032
Merge pull request #2386 from youknowone/dircolors-double-scan
...
Prevent double scanning from dircolors
2021-06-21 22:31:24 +02:00
Sylvestre Ledru
97ce44b102
Merge pull request #2407 from hbina/hbina-more-terminal-resize
...
Improvements to `more`.
2021-06-21 22:30:07 +02:00
Anup Mahindre
4b3224dd82
ls: Fix clippy warning
2021-06-21 20:29:22 +05:30
Jan Scheer
25ef39472c
groups: fix to pass GNU Testsuite groups-process-all.sh
...
* add support for multiple users
* sync help text with GNU's `groups` manpage
2021-06-21 14:33:09 +02:00
Jan Scheer
30e45eefa4
groups: fix to pass GNU Testsuite groups-dash.sh
2021-06-21 13:19:57 +02:00
Rémi Lauzier
6aa79440f5
Fix a clippy warning
2021-06-20 21:21:50 -04:00
Michael Debertol
a91369bbff
cp: fix dead code warnings on windows
2021-06-20 19:10:51 +02:00
Anup Mahindre
3b641afadc
ls: Fix issue with Windows and dangling symbolic links
...
- Windows hidden file attribute determination would assume symbolic link
to be valid and would panic
- Check symbolic link's attributes if the link points to non-existing
file
2021-06-20 16:56:25 +05:30
Terts Diepraam
5ac0274c13
numfmt: fix doctest and spell check
2021-06-20 11:50:14 +02:00
Anup Mahindre
f6cb1324b6
ls: Fix problems dealing with dangling symlinks
...
- For dangling symlinks, errors should only be reported if
dereferencing options were passed and dereferencing was applicable to
the particular symlink
- With -i parameter, report '?' as the inode number for dangling
symlinks
2021-06-20 13:31:45 +05:30
Roy Ivy III
b11e9a057e
docs/spell ~ (uucore) add spelling exceptions
2021-06-19 18:37:13 -05:00
Terts Diepraam
3086e95702
numfmt: add round and use C locale style for errors
2021-06-20 00:21:14 +02:00
Sylvestre Ledru
115eb5eb52
Merge pull request #2432 from dezgeg/test-bracket-syntax
...
test: Implement [ expr ] syntax
2021-06-19 19:14:20 +02:00
Michael Debertol
076c7fa501
cp: default to --reflink=auto on linux and macos
2021-06-19 18:59:57 +02:00
Michael Debertol
9fb927aa85
cp: always delete the destination for symlinks
2021-06-19 18:59:57 +02:00
Michael Debertol
6400cded54
cp: fix order of checks in copy_helper
2021-06-19 18:59:57 +02:00
Tuomas Tynkkynen
7b9814c778
test: Implement [ expr ] syntax
...
When invoked via '[' name, last argument must be ']' or we bail out with
syntax error. Then the trailing ']' is simply disregarded and processing
happens like usual.
2021-06-19 18:49:21 +03:00
Sylvestre Ledru
5ba69d4a35
Merge pull request #2412 from syukronrm/du-dereference
...
du: add `--dereference`
2021-06-19 12:05:18 +02:00
Sylvestre Ledru
ac98960f32
Merge pull request #2427 from miDeb/ln/recursive-relative
...
ln: don't return an empty path in `relative_path`
2021-06-19 12:03:59 +02:00
Sylvestre Ledru
65fe9beaad
bring back #[cfg(windows)]
2021-06-19 08:58:33 +02:00
Sylvestre Ledru
e2a00b67ed
Merge pull request #2428 from jhscheer/cut_2424
...
cut: fix `-d=` (#2424 )
2021-06-19 08:46:42 +02:00
Sylvestre Ledru
7739080e6e
Merge pull request #2430 from tertsdiepraam/cp/update-options
...
`cp`: use `options` module and update list op implemented args
2021-06-18 18:50:36 +02:00
Sylvestre Ledru
54ccfdfd9f
Merge pull request #2413 from deantvv/ls-show-control-if-tty
...
ls: set show-control-char if stdout is terminal
2021-06-18 18:26:22 +02:00
Terts Diepraam
f1e043ca1b
Merge pull request #2361 from jhscheer/id_zero_2351
...
id: revamp to pass more of GNU's Testsuite
2021-06-18 18:10:49 +02:00
Terts Diepraam
14520fb64e
cp: remove redundant newline in readme
2021-06-18 18:00:27 +02:00
Terts Diepraam
fdfa44cb5c
Merge branch 'master' into cp/update-options
2021-06-18 17:59:13 +02:00
Terts Diepraam
ab3f2cb672
cp: update list of implemented arguments
2021-06-18 17:56:22 +02:00
Terts Diepraam
cf1a7d0796
cp: use options module
2021-06-18 17:56:04 +02:00
Terts Diepraam
e273cb8e4f
Merge pull request #2426 from miDeb/cp/symlinks
...
cp: improve symlink handling
2021-06-18 17:27:50 +02:00
Michael Debertol
4e62c9db71
install: support target-directory
2021-06-18 16:45:36 +02:00
Jan Scheer
65f47be5ee
cut: fix -d=
( #2424 )
2021-06-18 12:10:40 +02:00
Michael Debertol
3d3af5c8ca
ln: don't return an empty path in relative_path
2021-06-18 11:53:29 +02:00
Michael Debertol
a371c03431
cp: only get the current directory once
2021-06-18 11:48:13 +02:00
Michael Debertol
32526e3048
cp: one more clippy fix
2021-06-18 11:45:04 +02:00
Michael Debertol
315bfd65a3
cp: move symlink check to the right place
2021-06-18 11:44:39 +02:00
Tuomas Tynkkynen
d05964a8cb
test: Implement -k
...
parser.rs already accepts this, finish the implementation.
2021-06-18 00:03:08 +03:00
Michael Debertol
12a1c87cb8
cp: improve symlink handling
2021-06-17 22:26:13 +02:00
Dean Li
c73ba1630e
ls: set show-control-char if stdout is terminal
2021-06-17 19:55:21 +08:00
Terts Diepraam
439b7e0ca5
Merge pull request #2415 from miDeb/touch/date-epoch
...
touch: support @<timestamp> date format
2021-06-17 10:36:03 +02:00
Terts Diepraam
de069190b9
Merge pull request #2417 from miDeb/sort/no-sigpipe-panic
...
sort: avoid sigpipe errors
2021-06-17 10:34:13 +02:00
Syukron Rifail M
bc8415c9db
du: add --dereference
2021-06-17 14:06:41 +07:00
Terts Diepraam
1f4d5827ec
Merge pull request #2416 from jhscheer/fix_getgrouplist
...
uucore/entries: fix `getgrouplist` wrapper to handle a bug in macOS's `getgrouplist` implementation
2021-06-17 00:14:20 +02:00
Michael Debertol
b87387964d
core: mute all BrokenPipe errors
...
On windows the error message does not contain `Broken pipe`, so let's
try to find the error `kind` which should be `BrokenPipe` in all cases.
2021-06-17 00:06:43 +02:00
Michael Debertol
816c55dce4
sort: avoid sigpipe errors
...
By calling `unwrap` we get a panic instead of an abort, and since we
mute sigpipe panics for all utilites, no error message will be printed.
2021-06-17 00:06:39 +02:00
Terts Diepraam
ce6d439a1b
Merge pull request #2381 from miDeb/sort/merge-improvements
...
sort: delete temporary files as soon as possible
2021-06-17 00:00:59 +02:00
Jan Scheer
39aa5312ed
id/tests: skip tests for multiple_user feature if there's not at least coreutils id
version 8.31 in $PATH
2021-06-16 23:52:55 +02:00
Jan Scheer
88367c6fb4
Merge branch 'fix_getgrouplist' into id_zero_2351
2021-06-16 19:20:34 +02:00
Jan Scheer
54cbb69d37
id/tests: fix tests if run on macOS
2021-06-16 19:16:29 +02:00
Michael Debertol
4c5ee1dbd7
tty: correct exit code for write errrors
2021-06-16 17:55:48 +02:00
Michael Debertol
3c271304f5
tty: correct exit code for wrong args
2021-06-16 17:43:38 +02:00
Hanif Bin Ariffin
2a7209116d
Fixed cp --preserve accepting no args
...
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
2021-06-16 11:26:52 +08:00
Michael Debertol
84affa2137
touch: support @<timestamp>
date format
...
parse `@<seconds since epoch>` as a valid date.
2021-06-15 22:43:40 +02:00
Jan Scheer
996e1b8539
uucore/entries: fix getgrouplist
wrapper to handle a bug in macOS's
...
`getgrouplist` implementation
* add documentation
2021-06-15 22:13:52 +02:00
Michael Debertol
4bd556d58e
sort: better convey that the return value should be ignored
2021-06-15 19:09:22 +02:00
Michael Debertol
6979b707c0
sort: fix clippy lints
2021-06-15 19:09:22 +02:00
Michael Debertol
047ced2c7f
sort: increase default merge batch size
...
I think we can attempt to open 32 files concurrently on all systems
without risking resource exhaustion.
2021-06-15 19:09:22 +02:00
Michael Debertol
6a3c1c19d9
sort: remove needless allow
2021-06-15 19:09:22 +02:00