* feat: move unexpand to clap
* chore: allow muliple files
* test: add test fixture, test reading from a file
* test: fix typo on file name, add test for multiple inputs
* chore: use 'success()' instead of asserting
* chore: delete unused variables
* chore: use help instead of long_help, break long line
* fix: use settings to allow leading hyphen and trailing var arg
fixes: https://github.com/uutils/coreutils/issues/1873
* test: add test cases
* test: add more test cases with different order in hyphen values
* chore: add comment to explain why we need TrailingVarArg
* Re-add fixed test
* Stop tests failing on utils that aren't the focus of the test
* Use which to find system utils
* Move timeout to per-test script
Move to a timeout applied to each script and re add the tests that are hanging so they show as failing
* Typo
* Use system timeout command
* Add 4 hour global timeout for protection
* Stop seq-precision.sh causing jams in make
* Shorten the timeout on seq-precision
* Try removing seq-precision
* Keep producing logs even if make hangs
* Add timeouts to other tests that hang
* More tight timeouts
* Remove unbuffer
This causes the make process to hang for some reason, and it itsn't providing any real advantage so it's taken out
* Create *sum binaries for tests
* Use system sha1sum in factor tests
* generate all factor scripts
* fail tests for any binary not built
* Fix tests still failing for the wrong reason
* Revert "Remove unbuffer"
This reverts commit bbce179115.
* Revert "Revert "Remove unbuffer""
This reverts commit 8dae8b798a.
* Use system utils
* clean up sed commands
* clean up workflow script
* Remove use of which to set system binaries
* Don't fail the job if test-suite.log is missing
* Fix typo
* Fix more problems with utils that aren't being tested
* Fix yaml syntax
* Fix test setup
- changed some error return codes to match GNU implementation
- changed warning/error messages to match GNU nohup
- replaced getopts dependency with clap
- added a test
This PR adds the options to customize what information is shown in long format regarding author, group & owner. Specifically it adds:
- `--author`: shows the author, which is always the same as the owner. GNU has this feature because GNU/Hurd supports a difference between author and owner, but I don't think Rust supports GNU/Hurd, so I just used the owner.
- `-G` & `--no-group`: hide the group information.
- `-o`: hide the group and use long format (equivalent to `-lG`).
- `-g`: hide the owner and use long format.
The `-o` and `-g` options have some interesting behaviour that I had to account for. Some examples:
- `-og` hides both group and owner.
- `-ol` still hides the group. Same behaviour with variations such as `-o --format=long`, `-gl`, `-g --format=long` and `-ogl`.
- They even retain some information when overridden by another format: `-oCl` (or `-o --format=vertical --format=long`) still hides the group.
My previous solution for handling the behaviour where `-l1` shows the long format did not fit with these additions, so I had to rewrite that as well.
The tests only cover the how many names (author, group and owner) are present in the output, so it can't distinguish between, for example, author & group and group & owner.
It was a draft PR, not ready for merging, and its premature inclusion
caused repeated issues, see 368f47381b & friends.
Close#1841.
This reverts commits 3743a3e1e7,
ce218e01b6, and
b7b0c76b8e.
* date: implement set date for unix and windows
Parsing the date string is not fully implemented yet, as in it relies
on the internals of chrono - things like "Mon, 14 Aug 2006 02:34:56 -0600"
do not work, nor does "2006-08-14 02:34:56" (no TZ / local time). This
is no different to using the "--date" option however, and will get fixed
when `parse_date` is a bit smarter.
Only supports unix and Windows platforms for now.