Commit graph

393 commits

Author SHA1 Message Date
Sylvestre Ledru
469abf2427 bug(seq) - Allow 'seq 6 -1 0'
Was failing with
```
Found argument '-1' which wasn't expected, or isn't valid in this context
```
otherwise
2020-12-19 11:55:43 +01:00
Sylvestre Ledru
dbc716546b fix(mkdir) - Add --parent as alias of --parents
It is used this way sometimes:
https://sources.debian.org/src/php-symfony-polyfill/1.21.0-2/debian/rules/?hl=49#L49
https://sources.debian.org/src/firebird3.0/3.0.7.33374.ds4-1/debian/functions.sh/?hl=24#L24
https://sources.debian.org/src/postfix/3.5.6-1/debian/configure-instance.sh/?hl=67#L67
2020-12-18 14:41:59 +01:00
Sylvestre Ledru
718695d541 fix(install) - Install was failing with '-m 0333'
The parse_numeric was getting ' 0333' as input
and showing 'mode is too large ( 0333 > 7777) as error

Syntax used: https://sources.debian.org/src/firebird3.0/3.0.7.33374.ds4-1/debian/functions.sh/?hl=145#L145
2020-12-18 13:36:55 +01:00
Sylvestre Ledru
c506b5402b fix clippy warnings 2020-12-17 21:34:10 +01:00
Sylvestre Ledru
5a62dcafaa bug(cp): like gnu/cp, don't show any message when --no-clobber is used
Simple example:
touch bar
rm -rf /tmp/foo
mkdir -p /tmp/foo
cp -pnL -v bar /tmp/foo
echo $?
cp -pnL -v bar /tmp/foo
echo $?

rm -rf /tmp/foo
mkdir -p /tmp/foo
./target/debug/coreutils cp -pnL -v bar /tmp/foo
echo $?
./target/debug/coreutils cp -pnL bar /tmp/foo
echo $?
2020-12-17 20:50:38 +01:00
Sylvestre Ledru
1e9820a7c4
Merge pull request #1659 from sylvestre/base-non-utf8
base32/base64: tolerate non-utf8 encoded inputs
2020-12-16 08:46:48 +01:00
Gabriel Ganne
607b70a896 base32/base64: tolerate non-utf8 encoded inputs
For inputs that are valid base64 but that encode non-utf8 strings (like
garbage), base64 panicks when trying to unwrap the result from
String::from_utf8().
Instead of interpreting the byte stream as utf8, simply dump the raw
bytes to stdout.

Since the test assert that all io is valid utf8, this does not come with
a unit test. See run() in tests/common/utils.rs.

Eg.
"gD63hSj3ScS+wuOeGrubXlq35N1c5Lby/S+T7MNTjxo=" -> ">(Iľ^Z\/S"
2020-12-16 00:14:18 +01:00
Hiroki Noda
2916e8d811 tee: implement ignore-interrupts option 2020-12-15 23:50:43 +01:00
Sylvestre Ledru
d9cf0374be fix(sync) - Remove 'unused import' on mac 2020-12-13 18:02:33 +01:00
Sylvestre Ledru
ba126afe54 fix(ls): follow the display of GNU ls 2020-12-13 12:12:19 +01:00
Sylvestre Ledru
8a1628cf89 fix(ls): When a file doesn't exist, exit early and fails ls
Currently, running
$ ls doesntexist
will return 0
while it should return 1

Ditto for
$ ls doesntexist a
2020-12-13 12:12:19 +01:00
Sylvestre Ledru
dca1f28085 install: various improvements in output & tests 2020-12-12 14:36:23 +01:00
Sylvestre Ledru
3024ade071 refactor(chgrp, install): Show the error in the program instead of the lib 2020-12-12 14:28:50 +01:00
Sylvestre Ledru
55c660b986 feature(install): move chown functions into uucore and have install owner support use it 2020-12-12 14:27:59 +01:00
Sylvestre Ledru
015e18731f feature(install): install group support 2020-12-12 14:27:03 +01:00
Sylvestre Ledru
763de90fda refactor(chgrp): move chgrp perms function into the uucore to reuse it into install
Will move chown later
2020-12-12 14:26:32 +01:00
Sylvestre Ledru
431a4e9f2f cosmetic: consistency in the clap cargo declaration 2020-12-12 13:12:13 +01:00
Sylvestre Ledru
e19010e9fe cosmetic: consistency in the walkdir cargo declaration 2020-12-12 13:10:57 +01:00
Sylvestre Ledru
d8e345df0a
refactor(whoami): only use advapi32/winapi on Windows (#1653) 2020-12-12 11:04:39 +01:00
Sylvestre Ledru
576aa29f0f
refactor(chmod): move from walker to walkdir, simplify the code and add tests (#1645) 2020-12-12 10:31:12 +01:00
Sylvestre Ledru
49b32ea68d
refactor(chown): move to clap & add tests (#1648) 2020-12-12 00:14:00 +01:00
Sylvestre Ledru
068fee2ebd
feature(uname): Implement -p & -i (#1649)
Just return 'unknown' for both

Closes: #1636
2020-12-11 22:46:36 +01:00
Sylvestre Ledru
516839e081
refactor(mv): move to clap (#1652) 2020-12-10 22:28:17 +01:00
Piyush Jaipuriayar
3ca8ba997c
hashsum: added blake2 as a hashing algorithm (#1651) 2020-12-08 23:32:02 +01:00
Sylvestre Ledru
d21acc4621
cosmetic(cp): use the variable instead of the string 2020-12-08 23:19:51 +01:00
Sylvestre Ledru
0cfb83a040
Merge pull request #1580 from sylvestre/archive3
feature(cp): implement archive & -L
2020-12-06 17:15:56 +01:00
Sylvestre Ledru
5f47d1249d use the same version of clap everywhere 2020-12-01 22:59:14 +01:00
Sylvestre Ledru
c483fa501b feature(cp): also implement --dereference/-L 2020-11-29 20:48:29 +01:00
Sylvestre Ledru
f76a0ec972 feature(cp): implement archive + add missing tests 2020-11-29 20:48:23 +01:00
Sylvestre Ledru
b07f496b70 fix(install): 'install file_a file_b' should just copy the file 2020-11-29 16:33:46 +01:00
Sylvestre Ledru
261b4e24d6 feature(install): remove a duplicate check.
Already done in is_new_file_path
2020-11-29 16:33:46 +01:00
Sylvestre Ledru
11ecf80a25
feature(sync): add --data & --file-system (#1639) 2020-11-29 16:32:21 +01:00
Sylvestre Ledru
89f8624936
bug(install) - install -d can be run on an existing directory (#1643)
GNU:
$ install -d foo
$ install -d foo

Rust:
$ install -d foo
$ install -d foo
install: cannot create directory 'foo': File exists
install: foo: File exists (os error 17)
2020-11-29 16:31:26 +01:00
Sylvestre Ledru
8ef7f394c1
address some new clippy warnings (#1642) 2020-11-29 16:26:38 +01:00
Sylvestre Ledru
adc9b12f32 install: fix a typo 2020-11-25 13:09:28 +01:00
Sylvestre Ledru
bfba889f8e
refactor(touch): Move to clap + add a test (#1629) 2020-11-21 09:53:13 +01:00
Sylvestre Ledru
5efaa0bf32
refactor(id) - move to clap and add more tests (#1628) 2020-11-21 09:52:50 +01:00
Sylvestre Ledru
41ba5ed913
refactor(uniq): Move to clap + add a test (#1626) 2020-11-21 09:52:40 +01:00
Sylvestre Ledru
7bbb4c98e8
Merge pull request #1623 from sylvestre/clap-pwd
refactor(pwd): move to clap + add a test
2020-11-21 00:49:30 +01:00
Sylvestre Ledru
6870d81b33
Merge pull request #1631 from sylvestre/clap-version
Remove version mgmt, it is done by clap
2020-11-20 10:02:33 +01:00
Sylvestre Ledru
6fc4129daf
Merge pull request #1624 from sylvestre/uptime-refresh
refactor(uptime): some minor improvements
2020-11-20 10:02:13 +01:00
Sylvestre Ledru
641aba5bd7 maint/hostname: Fix a clippy warning 'single_char_push_str' 2020-11-19 23:16:31 +01:00
Sylvestre Ledru
8271faf3a2
Merge branch 'master' into clap-pwd 2020-11-19 22:32:02 +01:00
Sylvestre Ledru
252f527b55
Merge branch 'master' into uptime-refresh 2020-11-19 22:30:33 +01:00
Sylvestre Ledru
62265656b4
Merge pull request #1630 from sylvestre/clap-mkdir
refactor(mkdir): Move to clap + add a test
2020-11-17 13:01:09 +01:00
Sylvestre Ledru
5eaab5327c
Merge pull request #1632 from sylvestre/clap-rm
refactor(rm): Move to clap + add a test
2020-11-17 13:00:35 +01:00
Sylvestre Ledru
eada6e58e5
Merge pull request #1637 from sylvestre/clap-install
refactor(install): move to clap
2020-11-17 13:00:04 +01:00
Sylvestre Ledru
27d5256cb6
Use the correct syntax to define the mode 2020-11-16 22:02:06 +01:00
Sylvestre Ledru
55221a18b4
change order + remove useless import 2020-11-15 22:53:49 +01:00
Sylvestre Ledru
f55d8a22ec
remove useless mut
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-15 22:49:26 +01:00
Sylvestre Ledru
5718af023b
use the OPT_VERBOSE
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-15 22:49:01 +01:00
Sylvestre Ledru
4fec824421
change the position of the TODO
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-15 22:48:39 +01:00
Sylvestre Ledru
d268bda28e
Merge pull request #1635 from sylvestre/clap-sync
refactor(sync): Move to clap + add tests
2020-11-15 22:40:46 +01:00
Sylvestre Ledru
2edfe32c48 refactor(install): move to clap 2020-11-13 18:21:56 +01:00
Sylvestre Ledru
2febd13733 refactor(sync): Move to clap + add tests 2020-11-11 22:57:55 +01:00
Sylvestre Ledru
61520546a5 refactor(rm): Move to clap + add a test 2020-11-09 10:27:58 +01:00
Roy Ivy III
6539b8c6b9 maint/deps ~ change version specification for dependencies between sub-packages
- refactor internal version specifications to be ">=M.m.p" (where M.m.p is *already published*)

## [why]

Loosening internal version dependencies decreases the coupling between packages such
that packages can be published in a looser order. It allows the packages to be version
updated and published in tandem (ie, by using `cargo workspace ...`). Once published,
the internal versions can then be updated (again, to an *already published* package
version), as needed.
2020-11-08 20:26:46 -06:00
Roy Ivy III
c17307c757 fix ~ update workspace pointers to 'uucore' and 'uucore_procs' 2020-11-08 20:26:46 -06:00
Sylvestre Ledru
5c8e47a4d1 Remove version mgmt, it is done by clap 2020-11-08 17:55:31 +01:00
Sylvestre Ledru
897bcb2e67 refactor(mkdir): Move to clap + add a test 2020-11-08 17:51:04 +01:00
Sylvestre Ledru
92d5d47434 refactor(pwd): move to clap + add a test 2020-11-03 23:12:16 +01:00
Sylvestre Ledru
8bd533ffe8 refactor(uptime): some minor improvements 2020-11-03 23:10:32 +01:00
Sylvestre Ledru
a3f3a050a8
Merge pull request #1618 from sylvestre/wc-clap
refactor(wc): use clap instead of getopts
2020-11-03 09:39:53 +01:00
Sylvestre Ledru
38e90b9a03
Merge pull request #1621 from sylvestre/clap-stat
refactor(stat): Move to clap
2020-11-03 08:37:39 +01:00
Sylvestre Ledru
57c83db6b6
Merge pull request #1616 from sylvestre/users
refactor(users): move to clap and simplify the code a bit
2020-11-03 08:37:16 +01:00
Sylvestre Ledru
bd41cb621b
Merge pull request #1620 from sylvestre/clap-printenv
refactor(printenv): use clap instead of getopts
2020-11-03 08:36:56 +01:00
Sylvestre Ledru
32ccd7d54d
Merge pull request #1619 from sylvestre/rmdir-clap
refactor(rmdir): use clap instead of getopts
2020-11-03 08:36:25 +01:00
Sylvestre Ledru
daf0f96b94
Update of the about description
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-02 22:47:55 +01:00
Sylvestre Ledru
2ad587ccbd
Update of the about description
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-02 22:32:44 +01:00
Sylvestre Ledru
1e37c29b1f refactor(stat): Move to clap 2020-11-02 22:18:51 +01:00
Sylvestre Ledru
58099f4203 refactor(wc): use clap instead of getopts 2020-10-29 20:40:00 +01:00
Roy Ivy III
114fda0519 tests ~ (sub-crate factor) refactor divisor() test for improved readability 2020-10-26 15:06:29 -05:00
Roy Ivy III
ae06368cd8 polish/factor ~ correct spelling 2020-10-26 15:06:29 -05:00
Roy Ivy III
6a525c950d perf/factor ~ tune number of stack inlined decomposition values (~1% time improvement) 2020-10-26 15:06:29 -05:00
Roy Ivy III
6eea8c5f30 perf/factor ~ improve factor() quotient and loop comparison (~6% time improvement) 2020-10-26 15:06:28 -05:00
Roy Ivy III
368f47381b fix/factor ~ fix fault when factoring number composed of a squared factor 2020-10-26 15:06:28 -05:00
Roy Ivy III
8593b4c46c tests ~ (sub-crate/factor) add tests for known prior factorization failures 2020-10-26 15:06:28 -05:00
Roy Ivy III
3bb3080170 factor/refactor ~ fix cargo clippy complaints (allow many_single_char_names) 2020-10-26 15:06:28 -05:00
nicoo
0d39732300 factor::Decomposition: Inline a small number (4) of factors
This avoids allocating on the heap when factoring most numbers,
without using much space on the stack.

This is ~3.5% faster than the previous commit, and ~8.3% faster than “master”.
2020-10-26 15:06:28 -05:00
nicoo
78ae0cca31 factor: Slightly refactor main loop, fix bug 2020-10-26 15:06:28 -05:00
nicoo
b7b0c76b8e factor::Decomposition: Optimise as a factor is never added twice
The invariant is checked by a debug_assert!, and follows from the previous
commit, as `dec` and `factors` only ever contains coprime numbers:
  - true at the start: factor = ∅ and dec = { n¹ } ;
  - on every loop iteration, we pull out an element `f` from `dec` and either:
    - discover it is prime, and add it to `factors` ;
    - split it into a number of coprime factors, that get reinserted into `dec`;
      the invariant is maintained, as all divisors of `f` are coprime with all
      numbers in `dec` and `factors` (as `f` itself is coprime with them.

As we only add elements to `Decomposition` objects that are coprime with the
existing ones, they are distinct.
2020-10-26 15:06:28 -05:00
nicoo
ce218e01b6 factor: Ensure we only need to find every single factor once [WiP]
~17% faster, many optimisation opportunities still missed  >:)
2020-10-26 15:06:28 -05:00
nicoo
3743a3e1e7 factor: Derecursify and refactor
~7% slowdown, paves the way for upcoming improvements
2020-10-26 15:06:28 -05:00
nicoo
8643489096 factor::Factors: Use a RefCell rather than copy data when printing
~2.9% faster than the previous commit, ~11% faster than “master” overall.
2020-10-26 15:06:28 -05:00
nicoo
30f9cf32f2 factor::Decomposition: Use a flat vector representation
~18% faster than BTreeMap, and ~5% faster than 'master'
2020-10-26 15:06:27 -05:00
nicoo
b8ef58c002 factor::Factors: Split off a Decomposition type
The new type can be used to represent in-progress factorisations,
which contain non-prime factors.
2020-10-26 15:06:27 -05:00
nicoo
6158cd5714 factor: Introduce a type alias for exponents
This way, we can easily replace u8 with a larger type when moving to support
larger integers.
2020-10-26 15:06:27 -05:00
Sylvestre Ledru
af151703b3 refactor(rmdir): use clap instead of getopts 2020-10-26 09:53:55 +01:00
Sylvestre Ledru
17a99f8e53 refactor(printenv): use clap instead of getopts 2020-10-26 09:52:53 +01:00
Roy Ivy III
5837bc4fc9
Merge pull request #1610 from sylvestre/sort-clap
refactor(sort): move to use of 'clap'
2020-10-25 18:56:58 -05:00
Roy Ivy III
a9fb64abb4
Merge pull request #1612 from sylvestre/clap-seq
Move seq to use of 'clap'
2020-10-25 18:56:24 -05:00
Sylvestre Ledru
dc4eb79329 refactor/sort ~ changes based on PR feedback
- change `const`=>`static` and remove unneeded help/version (supplied by default by `clap`)
- update of the ABOUT description
- move to alphabetical order (where reasonable)
- rename OPT_FILES => ARG_FILES
- change the order of the declarations
2020-10-25 11:14:15 -05:00
Sylvestre Ledru
7fb5aaa108
only one file is allowed
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-10-25 17:07:32 +01:00
Sylvestre Ledru
bd339f142e
Improve the "about" description
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-10-25 17:07:17 +01:00
Sylvestre Ledru
58b0aeabee refactor(sort): move to clap 2020-10-25 11:01:30 -05:00
Sylvestre Ledru
75e1c517a0 refactor/seq ~ changes based on PR feedback
- fix the ABOUT description
- rename OPT_NUMBERS => ARG_NUMBERS
- improve the get_usage of seq
- rename seq => incremetal
- `cargo fmt`
2020-10-25 10:58:14 -05:00
Sylvestre Ledru
e06aaace59 refactor/readline ~ changes based on PR feedback
- add a trailing "." to ABOUT for consistency
- rename OPT_FILES => ARG_FILES
- move to alphabetical order for OPTIONs (where reasonable)

Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-10-25 10:54:24 -05:00
Sylvestre Ledru
733fe925ad refactor(readlink): move to clap 2020-10-25 10:53:09 -05:00
Sylvestre Ledru
dfb922f66e refactor(seq): use clap instead of doing arg mgmt by hand 2020-10-25 10:46:38 -05:00
Roy Ivy III
58d7d89e07
Merge pull request #1617 from sylvestre/clippy-fix
Fix some clippy warnings
2020-10-25 10:35:35 -05:00