mirror of
https://github.com/uutils/coreutils
synced 2024-07-22 02:14:38 +00:00
Merge branch 'main' into tail_notify
This commit is contained in:
commit
dc4b6f2cf9
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
|
@ -7,6 +7,6 @@ updates:
|
|||
open-pull-requests-limit: 5
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 5
|
||||
|
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
|
@ -6,7 +6,7 @@
|
|||
// "streetsidesoftware.code-spell-checker" ~ `cspell` spell-checker support
|
||||
{
|
||||
"recommendations": [
|
||||
"matklad.rust-analyzer",
|
||||
"rust-lang.rust-analyzer",
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"foxundermoon.shell-format"
|
||||
]
|
||||
|
|
478
Cargo.lock
generated
478
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
206
Cargo.toml
206
Cargo.toml
|
@ -5,7 +5,7 @@
|
|||
|
||||
[package]
|
||||
name = "coreutils"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust"
|
||||
|
@ -268,109 +268,109 @@ uucore = { version=">=0.0.11", package="uucore", path="src/uucore" }
|
|||
selinux = { version="0.2", optional = true }
|
||||
zip = { version = "0.6.0", optional=true, default_features=false, features=["deflate"] }
|
||||
# * uutils
|
||||
uu_test = { optional=true, version="0.0.13", package="uu_test", path="src/uu/test" }
|
||||
uu_test = { optional=true, version="0.0.14", package="uu_test", path="src/uu/test" }
|
||||
#
|
||||
arch = { optional=true, version="0.0.13", package="uu_arch", path="src/uu/arch" }
|
||||
base32 = { optional=true, version="0.0.13", package="uu_base32", path="src/uu/base32" }
|
||||
base64 = { optional=true, version="0.0.13", package="uu_base64", path="src/uu/base64" }
|
||||
basename = { optional=true, version="0.0.13", package="uu_basename", path="src/uu/basename" }
|
||||
basenc = { optional=true, version="0.0.13", package="uu_basenc", path="src/uu/basenc" }
|
||||
cat = { optional=true, version="0.0.13", package="uu_cat", path="src/uu/cat" }
|
||||
chcon = { optional=true, version="0.0.13", package="uu_chcon", path="src/uu/chcon" }
|
||||
chgrp = { optional=true, version="0.0.13", package="uu_chgrp", path="src/uu/chgrp" }
|
||||
chmod = { optional=true, version="0.0.13", package="uu_chmod", path="src/uu/chmod" }
|
||||
chown = { optional=true, version="0.0.13", package="uu_chown", path="src/uu/chown" }
|
||||
chroot = { optional=true, version="0.0.13", package="uu_chroot", path="src/uu/chroot" }
|
||||
cksum = { optional=true, version="0.0.13", package="uu_cksum", path="src/uu/cksum" }
|
||||
comm = { optional=true, version="0.0.13", package="uu_comm", path="src/uu/comm" }
|
||||
cp = { optional=true, version="0.0.13", package="uu_cp", path="src/uu/cp" }
|
||||
csplit = { optional=true, version="0.0.13", package="uu_csplit", path="src/uu/csplit" }
|
||||
cut = { optional=true, version="0.0.13", package="uu_cut", path="src/uu/cut" }
|
||||
date = { optional=true, version="0.0.13", package="uu_date", path="src/uu/date" }
|
||||
dd = { optional=true, version="0.0.13", package="uu_dd", path="src/uu/dd" }
|
||||
df = { optional=true, version="0.0.13", package="uu_df", path="src/uu/df" }
|
||||
dir = { optional=true, version="0.0.13", package="uu_dir", path="src/uu/dir" }
|
||||
dircolors= { optional=true, version="0.0.13", package="uu_dircolors", path="src/uu/dircolors" }
|
||||
dirname = { optional=true, version="0.0.13", package="uu_dirname", path="src/uu/dirname" }
|
||||
du = { optional=true, version="0.0.13", package="uu_du", path="src/uu/du" }
|
||||
echo = { optional=true, version="0.0.13", package="uu_echo", path="src/uu/echo" }
|
||||
env = { optional=true, version="0.0.13", package="uu_env", path="src/uu/env" }
|
||||
expand = { optional=true, version="0.0.13", package="uu_expand", path="src/uu/expand" }
|
||||
expr = { optional=true, version="0.0.13", package="uu_expr", path="src/uu/expr" }
|
||||
factor = { optional=true, version="0.0.13", package="uu_factor", path="src/uu/factor" }
|
||||
false = { optional=true, version="0.0.13", package="uu_false", path="src/uu/false" }
|
||||
fmt = { optional=true, version="0.0.13", package="uu_fmt", path="src/uu/fmt" }
|
||||
fold = { optional=true, version="0.0.13", package="uu_fold", path="src/uu/fold" }
|
||||
groups = { optional=true, version="0.0.13", package="uu_groups", path="src/uu/groups" }
|
||||
hashsum = { optional=true, version="0.0.13", package="uu_hashsum", path="src/uu/hashsum" }
|
||||
head = { optional=true, version="0.0.13", package="uu_head", path="src/uu/head" }
|
||||
hostid = { optional=true, version="0.0.13", package="uu_hostid", path="src/uu/hostid" }
|
||||
hostname = { optional=true, version="0.0.13", package="uu_hostname", path="src/uu/hostname" }
|
||||
id = { optional=true, version="0.0.13", package="uu_id", path="src/uu/id" }
|
||||
install = { optional=true, version="0.0.13", package="uu_install", path="src/uu/install" }
|
||||
join = { optional=true, version="0.0.13", package="uu_join", path="src/uu/join" }
|
||||
kill = { optional=true, version="0.0.13", package="uu_kill", path="src/uu/kill" }
|
||||
link = { optional=true, version="0.0.13", package="uu_link", path="src/uu/link" }
|
||||
ln = { optional=true, version="0.0.13", package="uu_ln", path="src/uu/ln" }
|
||||
ls = { optional=true, version="0.0.13", package="uu_ls", path="src/uu/ls" }
|
||||
logname = { optional=true, version="0.0.13", package="uu_logname", path="src/uu/logname" }
|
||||
mkdir = { optional=true, version="0.0.13", package="uu_mkdir", path="src/uu/mkdir" }
|
||||
mkfifo = { optional=true, version="0.0.13", package="uu_mkfifo", path="src/uu/mkfifo" }
|
||||
mknod = { optional=true, version="0.0.13", package="uu_mknod", path="src/uu/mknod" }
|
||||
mktemp = { optional=true, version="0.0.13", package="uu_mktemp", path="src/uu/mktemp" }
|
||||
more = { optional=true, version="0.0.13", package="uu_more", path="src/uu/more" }
|
||||
mv = { optional=true, version="0.0.13", package="uu_mv", path="src/uu/mv" }
|
||||
nice = { optional=true, version="0.0.13", package="uu_nice", path="src/uu/nice" }
|
||||
nl = { optional=true, version="0.0.13", package="uu_nl", path="src/uu/nl" }
|
||||
nohup = { optional=true, version="0.0.13", package="uu_nohup", path="src/uu/nohup" }
|
||||
nproc = { optional=true, version="0.0.13", package="uu_nproc", path="src/uu/nproc" }
|
||||
numfmt = { optional=true, version="0.0.13", package="uu_numfmt", path="src/uu/numfmt" }
|
||||
od = { optional=true, version="0.0.13", package="uu_od", path="src/uu/od" }
|
||||
paste = { optional=true, version="0.0.13", package="uu_paste", path="src/uu/paste" }
|
||||
pathchk = { optional=true, version="0.0.13", package="uu_pathchk", path="src/uu/pathchk" }
|
||||
pinky = { optional=true, version="0.0.13", package="uu_pinky", path="src/uu/pinky" }
|
||||
pr = { optional=true, version="0.0.13", package="uu_pr", path="src/uu/pr" }
|
||||
printenv = { optional=true, version="0.0.13", package="uu_printenv", path="src/uu/printenv" }
|
||||
printf = { optional=true, version="0.0.13", package="uu_printf", path="src/uu/printf" }
|
||||
ptx = { optional=true, version="0.0.13", package="uu_ptx", path="src/uu/ptx" }
|
||||
pwd = { optional=true, version="0.0.13", package="uu_pwd", path="src/uu/pwd" }
|
||||
readlink = { optional=true, version="0.0.13", package="uu_readlink", path="src/uu/readlink" }
|
||||
realpath = { optional=true, version="0.0.13", package="uu_realpath", path="src/uu/realpath" }
|
||||
relpath = { optional=true, version="0.0.13", package="uu_relpath", path="src/uu/relpath" }
|
||||
rm = { optional=true, version="0.0.13", package="uu_rm", path="src/uu/rm" }
|
||||
rmdir = { optional=true, version="0.0.13", package="uu_rmdir", path="src/uu/rmdir" }
|
||||
runcon = { optional=true, version="0.0.13", package="uu_runcon", path="src/uu/runcon" }
|
||||
seq = { optional=true, version="0.0.13", package="uu_seq", path="src/uu/seq" }
|
||||
shred = { optional=true, version="0.0.13", package="uu_shred", path="src/uu/shred" }
|
||||
shuf = { optional=true, version="0.0.13", package="uu_shuf", path="src/uu/shuf" }
|
||||
sleep = { optional=true, version="0.0.13", package="uu_sleep", path="src/uu/sleep" }
|
||||
sort = { optional=true, version="0.0.13", package="uu_sort", path="src/uu/sort" }
|
||||
split = { optional=true, version="0.0.13", package="uu_split", path="src/uu/split" }
|
||||
stat = { optional=true, version="0.0.13", package="uu_stat", path="src/uu/stat" }
|
||||
stdbuf = { optional=true, version="0.0.13", package="uu_stdbuf", path="src/uu/stdbuf" }
|
||||
sum = { optional=true, version="0.0.13", package="uu_sum", path="src/uu/sum" }
|
||||
sync = { optional=true, version="0.0.13", package="uu_sync", path="src/uu/sync" }
|
||||
tac = { optional=true, version="0.0.13", package="uu_tac", path="src/uu/tac" }
|
||||
tail = { optional=true, version="0.0.13", package="uu_tail", path="src/uu/tail" }
|
||||
tee = { optional=true, version="0.0.13", package="uu_tee", path="src/uu/tee" }
|
||||
timeout = { optional=true, version="0.0.13", package="uu_timeout", path="src/uu/timeout" }
|
||||
touch = { optional=true, version="0.0.13", package="uu_touch", path="src/uu/touch" }
|
||||
tr = { optional=true, version="0.0.13", package="uu_tr", path="src/uu/tr" }
|
||||
true = { optional=true, version="0.0.13", package="uu_true", path="src/uu/true" }
|
||||
truncate = { optional=true, version="0.0.13", package="uu_truncate", path="src/uu/truncate" }
|
||||
tsort = { optional=true, version="0.0.13", package="uu_tsort", path="src/uu/tsort" }
|
||||
tty = { optional=true, version="0.0.13", package="uu_tty", path="src/uu/tty" }
|
||||
uname = { optional=true, version="0.0.13", package="uu_uname", path="src/uu/uname" }
|
||||
unexpand = { optional=true, version="0.0.13", package="uu_unexpand", path="src/uu/unexpand" }
|
||||
uniq = { optional=true, version="0.0.13", package="uu_uniq", path="src/uu/uniq" }
|
||||
unlink = { optional=true, version="0.0.13", package="uu_unlink", path="src/uu/unlink" }
|
||||
uptime = { optional=true, version="0.0.13", package="uu_uptime", path="src/uu/uptime" }
|
||||
users = { optional=true, version="0.0.13", package="uu_users", path="src/uu/users" }
|
||||
vdir = { optional=true, version="0.0.13", package="uu_vdir", path="src/uu/vdir" }
|
||||
wc = { optional=true, version="0.0.13", package="uu_wc", path="src/uu/wc" }
|
||||
who = { optional=true, version="0.0.13", package="uu_who", path="src/uu/who" }
|
||||
whoami = { optional=true, version="0.0.13", package="uu_whoami", path="src/uu/whoami" }
|
||||
yes = { optional=true, version="0.0.13", package="uu_yes", path="src/uu/yes" }
|
||||
arch = { optional=true, version="0.0.14", package="uu_arch", path="src/uu/arch" }
|
||||
base32 = { optional=true, version="0.0.14", package="uu_base32", path="src/uu/base32" }
|
||||
base64 = { optional=true, version="0.0.14", package="uu_base64", path="src/uu/base64" }
|
||||
basename = { optional=true, version="0.0.14", package="uu_basename", path="src/uu/basename" }
|
||||
basenc = { optional=true, version="0.0.14", package="uu_basenc", path="src/uu/basenc" }
|
||||
cat = { optional=true, version="0.0.14", package="uu_cat", path="src/uu/cat" }
|
||||
chcon = { optional=true, version="0.0.14", package="uu_chcon", path="src/uu/chcon" }
|
||||
chgrp = { optional=true, version="0.0.14", package="uu_chgrp", path="src/uu/chgrp" }
|
||||
chmod = { optional=true, version="0.0.14", package="uu_chmod", path="src/uu/chmod" }
|
||||
chown = { optional=true, version="0.0.14", package="uu_chown", path="src/uu/chown" }
|
||||
chroot = { optional=true, version="0.0.14", package="uu_chroot", path="src/uu/chroot" }
|
||||
cksum = { optional=true, version="0.0.14", package="uu_cksum", path="src/uu/cksum" }
|
||||
comm = { optional=true, version="0.0.14", package="uu_comm", path="src/uu/comm" }
|
||||
cp = { optional=true, version="0.0.14", package="uu_cp", path="src/uu/cp" }
|
||||
csplit = { optional=true, version="0.0.14", package="uu_csplit", path="src/uu/csplit" }
|
||||
cut = { optional=true, version="0.0.14", package="uu_cut", path="src/uu/cut" }
|
||||
date = { optional=true, version="0.0.14", package="uu_date", path="src/uu/date" }
|
||||
dd = { optional=true, version="0.0.14", package="uu_dd", path="src/uu/dd" }
|
||||
df = { optional=true, version="0.0.14", package="uu_df", path="src/uu/df" }
|
||||
dir = { optional=true, version="0.0.14", package="uu_dir", path="src/uu/dir" }
|
||||
dircolors= { optional=true, version="0.0.14", package="uu_dircolors", path="src/uu/dircolors" }
|
||||
dirname = { optional=true, version="0.0.14", package="uu_dirname", path="src/uu/dirname" }
|
||||
du = { optional=true, version="0.0.14", package="uu_du", path="src/uu/du" }
|
||||
echo = { optional=true, version="0.0.14", package="uu_echo", path="src/uu/echo" }
|
||||
env = { optional=true, version="0.0.14", package="uu_env", path="src/uu/env" }
|
||||
expand = { optional=true, version="0.0.14", package="uu_expand", path="src/uu/expand" }
|
||||
expr = { optional=true, version="0.0.14", package="uu_expr", path="src/uu/expr" }
|
||||
factor = { optional=true, version="0.0.14", package="uu_factor", path="src/uu/factor" }
|
||||
false = { optional=true, version="0.0.14", package="uu_false", path="src/uu/false" }
|
||||
fmt = { optional=true, version="0.0.14", package="uu_fmt", path="src/uu/fmt" }
|
||||
fold = { optional=true, version="0.0.14", package="uu_fold", path="src/uu/fold" }
|
||||
groups = { optional=true, version="0.0.14", package="uu_groups", path="src/uu/groups" }
|
||||
hashsum = { optional=true, version="0.0.14", package="uu_hashsum", path="src/uu/hashsum" }
|
||||
head = { optional=true, version="0.0.14", package="uu_head", path="src/uu/head" }
|
||||
hostid = { optional=true, version="0.0.14", package="uu_hostid", path="src/uu/hostid" }
|
||||
hostname = { optional=true, version="0.0.14", package="uu_hostname", path="src/uu/hostname" }
|
||||
id = { optional=true, version="0.0.14", package="uu_id", path="src/uu/id" }
|
||||
install = { optional=true, version="0.0.14", package="uu_install", path="src/uu/install" }
|
||||
join = { optional=true, version="0.0.14", package="uu_join", path="src/uu/join" }
|
||||
kill = { optional=true, version="0.0.14", package="uu_kill", path="src/uu/kill" }
|
||||
link = { optional=true, version="0.0.14", package="uu_link", path="src/uu/link" }
|
||||
ln = { optional=true, version="0.0.14", package="uu_ln", path="src/uu/ln" }
|
||||
ls = { optional=true, version="0.0.14", package="uu_ls", path="src/uu/ls" }
|
||||
logname = { optional=true, version="0.0.14", package="uu_logname", path="src/uu/logname" }
|
||||
mkdir = { optional=true, version="0.0.14", package="uu_mkdir", path="src/uu/mkdir" }
|
||||
mkfifo = { optional=true, version="0.0.14", package="uu_mkfifo", path="src/uu/mkfifo" }
|
||||
mknod = { optional=true, version="0.0.14", package="uu_mknod", path="src/uu/mknod" }
|
||||
mktemp = { optional=true, version="0.0.14", package="uu_mktemp", path="src/uu/mktemp" }
|
||||
more = { optional=true, version="0.0.14", package="uu_more", path="src/uu/more" }
|
||||
mv = { optional=true, version="0.0.14", package="uu_mv", path="src/uu/mv" }
|
||||
nice = { optional=true, version="0.0.14", package="uu_nice", path="src/uu/nice" }
|
||||
nl = { optional=true, version="0.0.14", package="uu_nl", path="src/uu/nl" }
|
||||
nohup = { optional=true, version="0.0.14", package="uu_nohup", path="src/uu/nohup" }
|
||||
nproc = { optional=true, version="0.0.14", package="uu_nproc", path="src/uu/nproc" }
|
||||
numfmt = { optional=true, version="0.0.14", package="uu_numfmt", path="src/uu/numfmt" }
|
||||
od = { optional=true, version="0.0.14", package="uu_od", path="src/uu/od" }
|
||||
paste = { optional=true, version="0.0.14", package="uu_paste", path="src/uu/paste" }
|
||||
pathchk = { optional=true, version="0.0.14", package="uu_pathchk", path="src/uu/pathchk" }
|
||||
pinky = { optional=true, version="0.0.14", package="uu_pinky", path="src/uu/pinky" }
|
||||
pr = { optional=true, version="0.0.14", package="uu_pr", path="src/uu/pr" }
|
||||
printenv = { optional=true, version="0.0.14", package="uu_printenv", path="src/uu/printenv" }
|
||||
printf = { optional=true, version="0.0.14", package="uu_printf", path="src/uu/printf" }
|
||||
ptx = { optional=true, version="0.0.14", package="uu_ptx", path="src/uu/ptx" }
|
||||
pwd = { optional=true, version="0.0.14", package="uu_pwd", path="src/uu/pwd" }
|
||||
readlink = { optional=true, version="0.0.14", package="uu_readlink", path="src/uu/readlink" }
|
||||
realpath = { optional=true, version="0.0.14", package="uu_realpath", path="src/uu/realpath" }
|
||||
relpath = { optional=true, version="0.0.14", package="uu_relpath", path="src/uu/relpath" }
|
||||
rm = { optional=true, version="0.0.14", package="uu_rm", path="src/uu/rm" }
|
||||
rmdir = { optional=true, version="0.0.14", package="uu_rmdir", path="src/uu/rmdir" }
|
||||
runcon = { optional=true, version="0.0.14", package="uu_runcon", path="src/uu/runcon" }
|
||||
seq = { optional=true, version="0.0.14", package="uu_seq", path="src/uu/seq" }
|
||||
shred = { optional=true, version="0.0.14", package="uu_shred", path="src/uu/shred" }
|
||||
shuf = { optional=true, version="0.0.14", package="uu_shuf", path="src/uu/shuf" }
|
||||
sleep = { optional=true, version="0.0.14", package="uu_sleep", path="src/uu/sleep" }
|
||||
sort = { optional=true, version="0.0.14", package="uu_sort", path="src/uu/sort" }
|
||||
split = { optional=true, version="0.0.14", package="uu_split", path="src/uu/split" }
|
||||
stat = { optional=true, version="0.0.14", package="uu_stat", path="src/uu/stat" }
|
||||
stdbuf = { optional=true, version="0.0.14", package="uu_stdbuf", path="src/uu/stdbuf" }
|
||||
sum = { optional=true, version="0.0.14", package="uu_sum", path="src/uu/sum" }
|
||||
sync = { optional=true, version="0.0.14", package="uu_sync", path="src/uu/sync" }
|
||||
tac = { optional=true, version="0.0.14", package="uu_tac", path="src/uu/tac" }
|
||||
tail = { optional=true, version="0.0.14", package="uu_tail", path="src/uu/tail" }
|
||||
tee = { optional=true, version="0.0.14", package="uu_tee", path="src/uu/tee" }
|
||||
timeout = { optional=true, version="0.0.14", package="uu_timeout", path="src/uu/timeout" }
|
||||
touch = { optional=true, version="0.0.14", package="uu_touch", path="src/uu/touch" }
|
||||
tr = { optional=true, version="0.0.14", package="uu_tr", path="src/uu/tr" }
|
||||
true = { optional=true, version="0.0.14", package="uu_true", path="src/uu/true" }
|
||||
truncate = { optional=true, version="0.0.14", package="uu_truncate", path="src/uu/truncate" }
|
||||
tsort = { optional=true, version="0.0.14", package="uu_tsort", path="src/uu/tsort" }
|
||||
tty = { optional=true, version="0.0.14", package="uu_tty", path="src/uu/tty" }
|
||||
uname = { optional=true, version="0.0.14", package="uu_uname", path="src/uu/uname" }
|
||||
unexpand = { optional=true, version="0.0.14", package="uu_unexpand", path="src/uu/unexpand" }
|
||||
uniq = { optional=true, version="0.0.14", package="uu_uniq", path="src/uu/uniq" }
|
||||
unlink = { optional=true, version="0.0.14", package="uu_unlink", path="src/uu/unlink" }
|
||||
uptime = { optional=true, version="0.0.14", package="uu_uptime", path="src/uu/uptime" }
|
||||
users = { optional=true, version="0.0.14", package="uu_users", path="src/uu/users" }
|
||||
vdir = { optional=true, version="0.0.14", package="uu_vdir", path="src/uu/vdir" }
|
||||
wc = { optional=true, version="0.0.14", package="uu_wc", path="src/uu/wc" }
|
||||
who = { optional=true, version="0.0.14", package="uu_who", path="src/uu/who" }
|
||||
whoami = { optional=true, version="0.0.14", package="uu_whoami", path="src/uu/whoami" }
|
||||
yes = { optional=true, version="0.0.14", package="uu_yes", path="src/uu/yes" }
|
||||
|
||||
# this breaks clippy linting with: "tests/by-util/test_factor_benches.rs: No such file or directory (os error 2)"
|
||||
# factor_benches = { optional = true, version = "0.0.0", package = "uu_factor_benches", path = "tests/benches/factor" }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_arch"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "arch ~ (uutils) display machine architecture"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_base32"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "base32 ~ (uutils) decode/encode input (base32-encoding)"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_base64"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "base64 ~ (uutils) decode/encode input (base64-encoding)"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_basename"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "basename ~ (uutils) display PATHNAME with leading directory components removed"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_basenc"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "basenc ~ (uutils) decode/encode input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_cat"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "cat ~ (uutils) concatenate and display input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_chcon"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "chcon ~ (uutils) change file security context"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_chgrp"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "chgrp ~ (uutils) change the group ownership of FILE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_chmod"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "chmod ~ (uutils) change mode of FILE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_chown"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "chown ~ (uutils) change the ownership of FILE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_chroot"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "chroot ~ (uutils) run COMMAND under a new root directory"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_cksum"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "cksum ~ (uutils) display CRC and size of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_comm"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "comm ~ (uutils) compare sorted inputs"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_cp"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = [
|
||||
"Jordy Dickinson <jordy.dickinson@gmail.com>",
|
||||
"Joshua S. Miller <jsmiller@uchicago.edu>",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_csplit"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "csplit ~ (uutils) Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte counts of each piece to standard output"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_cut"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "cut ~ (uutils) display byte/field columns of input lines"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_date"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "date ~ (uutils) display or set the current time"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_dd"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "dd ~ (uutils) copy and convert files"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_df"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "df ~ (uutils) display file system information"
|
||||
|
|
|
@ -99,7 +99,7 @@ fn to_magnitude_and_suffix_not_powers_of_1024(n: u128) -> Result<String, ()> {
|
|||
|
||||
if rem % (SI_BASES[i] / 10) == 0 {
|
||||
Ok(format!("{}.{}{}", quot, tenths_place, suffix))
|
||||
} else if tenths_place + 1 == 10 {
|
||||
} else if tenths_place + 1 == 10 || quot >= 10 {
|
||||
Ok(format!("{}{}", quot + 1, suffix))
|
||||
} else {
|
||||
Ok(format!("{}.{}{}", quot, tenths_place + 1, suffix))
|
||||
|
@ -245,6 +245,7 @@ mod tests {
|
|||
assert_eq!(to_magnitude_and_suffix(1001).unwrap(), "1.1kB");
|
||||
assert_eq!(to_magnitude_and_suffix(1023).unwrap(), "1.1kB");
|
||||
assert_eq!(to_magnitude_and_suffix(1025).unwrap(), "1.1kB");
|
||||
assert_eq!(to_magnitude_and_suffix(10_001).unwrap(), "11kB");
|
||||
assert_eq!(to_magnitude_and_suffix(999_000).unwrap(), "999kB");
|
||||
|
||||
assert_eq!(to_magnitude_and_suffix(999_001).unwrap(), "1MB");
|
||||
|
|
|
@ -148,6 +148,7 @@ impl fmt::Display for OptionsError {
|
|||
"option --output: field {} used more than once",
|
||||
s.quote()
|
||||
),
|
||||
#[allow(clippy::print_in_format_impl)]
|
||||
Self::FilesystemTypeBothSelectedAndExcluded(types) => {
|
||||
for t in types {
|
||||
eprintln!(
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_dir"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "shortcut to ls -C -b"
|
||||
|
@ -17,8 +17,8 @@ path = "src/dir.rs"
|
|||
[dependencies]
|
||||
clap = { version = "3.1", features = ["wrap_help", "cargo", "env"] }
|
||||
uucore = { version = ">=0.0.8", package = "uucore", path = "../../uucore", features = ["entries", "fs"] }
|
||||
selinux = { version="0.2", optional = true }
|
||||
uu_ls = {path="../ls"}
|
||||
selinux = { version = "0.2", optional = true }
|
||||
uu_ls = { version = ">=0.0.14", path="../ls"}
|
||||
|
||||
[[bin]]
|
||||
name = "dir"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_dircolors"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "dircolors ~ (uutils) display commands to set LS_COLORS"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_dirname"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "dirname ~ (uutils) display parent directory of PATHNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_du"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "du ~ (uutils) display disk usage"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_echo"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "echo ~ (uutils) display TEXT"
|
||||
|
|
2
src/uu/env/Cargo.toml
vendored
2
src/uu/env/Cargo.toml
vendored
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_env"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "env ~ (uutils) set each NAME to VALUE in the environment and run COMMAND"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_expand"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "expand ~ (uutils) convert input tabs to spaces"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_expr"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "expr ~ (uutils) display the value of EXPRESSION"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_factor"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "factor ~ (uutils) display the prime factors of each NUMBER"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_false"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "false ~ (uutils) do nothing and fail"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_fmt"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "fmt ~ (uutils) reformat each paragraph of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_fold"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "fold ~ (uutils) wrap each line of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_groups"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "groups ~ (uutils) display group memberships for USERNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_hashsum"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "hashsum ~ (uutils) display or check input digests"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_head"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "head ~ (uutils) display the first lines of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_hostid"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "hostid ~ (uutils) display the numeric identifier of the current host"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_hostname"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "hostname ~ (uutils) display or set the host name of the current host"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_id"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "id ~ (uutils) display user and group information for USER"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_install"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = [
|
||||
"Ben Eills <ben@beneills.com>",
|
||||
"uutils developers",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_join"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "join ~ (uutils) merge lines from inputs with matching join fields"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_kill"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "kill ~ (uutils) send a signal to a process"
|
||||
|
@ -16,7 +16,7 @@ path = "src/kill.rs"
|
|||
|
||||
[dependencies]
|
||||
clap = { version = "3.1", features = ["wrap_help", "cargo"] }
|
||||
libc = "0.2.126"
|
||||
nix = { version = "0.24.1", features = ["signal"] }
|
||||
uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["signals"] }
|
||||
|
||||
[[bin]]
|
||||
|
|
|
@ -5,16 +5,17 @@
|
|||
// * For the full copyright and license information, please view the LICENSE file
|
||||
// * that was distributed with this source code.
|
||||
|
||||
// spell-checker:ignore (ToDO) signalname pids
|
||||
// spell-checker:ignore (ToDO) signalname pids killpg
|
||||
|
||||
#[macro_use]
|
||||
extern crate uucore;
|
||||
|
||||
use clap::{crate_version, Arg, Command};
|
||||
use libc::{c_int, pid_t};
|
||||
use nix::sys::signal::{self, Signal};
|
||||
use nix::unistd::Pid;
|
||||
use std::io::Error;
|
||||
use uucore::display::Quotable;
|
||||
use uucore::error::{UResult, USimpleError};
|
||||
use uucore::error::{FromIo, UError, UResult, USimpleError};
|
||||
use uucore::signals::{signal_by_name_or_value, ALL_SIGNALS};
|
||||
use uucore::{format_usage, InvalidEncodingHandling};
|
||||
|
||||
|
@ -22,10 +23,9 @@ static ABOUT: &str = "Send signal to processes or list information about signals
|
|||
const USAGE: &str = "{} [OPTIONS]... PID...";
|
||||
|
||||
pub mod options {
|
||||
pub static PIDS_OR_SIGNALS: &str = "pids_of_signals";
|
||||
pub static PIDS_OR_SIGNALS: &str = "pids_or_signals";
|
||||
pub static LIST: &str = "list";
|
||||
pub static TABLE: &str = "table";
|
||||
pub static TABLE_OLD: &str = "table_old";
|
||||
pub static SIGNAL: &str = "signal";
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
|
||||
let matches = uu_app().get_matches_from(args);
|
||||
|
||||
let mode = if matches.is_present(options::TABLE) || matches.is_present(options::TABLE_OLD) {
|
||||
let mode = if matches.is_present(options::TABLE) {
|
||||
Mode::Table
|
||||
} else if matches.is_present(options::LIST) {
|
||||
Mode::List
|
||||
|
@ -67,8 +67,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
} else {
|
||||
15_usize //SIGTERM
|
||||
};
|
||||
let sig: Signal = (sig as i32)
|
||||
.try_into()
|
||||
.map_err(|e| std::io::Error::from_raw_os_error(e as i32))?;
|
||||
let pids = parse_pids(&pids_or_signals)?;
|
||||
kill(sig, &pids)
|
||||
kill(sig, &pids);
|
||||
Ok(())
|
||||
}
|
||||
Mode::Table => {
|
||||
table();
|
||||
|
@ -84,21 +88,21 @@ pub fn uu_app<'a>() -> Command<'a> {
|
|||
.about(ABOUT)
|
||||
.override_usage(format_usage(USAGE))
|
||||
.infer_long_args(true)
|
||||
.allow_negative_numbers(true)
|
||||
.arg(
|
||||
Arg::new(options::LIST)
|
||||
.short('l')
|
||||
.long(options::LIST)
|
||||
.help("Lists signals")
|
||||
.conflicts_with(options::TABLE)
|
||||
.conflicts_with(options::TABLE_OLD),
|
||||
.conflicts_with(options::TABLE),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::TABLE)
|
||||
.short('t')
|
||||
.short_alias('L')
|
||||
.long(options::TABLE)
|
||||
.help("Lists table of signals"),
|
||||
)
|
||||
.arg(Arg::new(options::TABLE_OLD).short('L').hide(true))
|
||||
.arg(
|
||||
Arg::new(options::SIGNAL)
|
||||
.short('s')
|
||||
|
@ -190,21 +194,21 @@ fn parse_signal_value(signal_name: &str) -> UResult<usize> {
|
|||
}
|
||||
}
|
||||
|
||||
fn parse_pids(pids: &[String]) -> UResult<Vec<usize>> {
|
||||
fn parse_pids(pids: &[String]) -> UResult<Vec<i32>> {
|
||||
pids.iter()
|
||||
.map(|x| {
|
||||
x.parse::<usize>().map_err(|e| {
|
||||
x.parse::<i32>().map_err(|e| {
|
||||
USimpleError::new(1, format!("failed to parse argument {}: {}", x.quote(), e))
|
||||
})
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn kill(signal_value: usize, pids: &[usize]) -> UResult<()> {
|
||||
fn kill(sig: Signal, pids: &[i32]) {
|
||||
for &pid in pids {
|
||||
if unsafe { libc::kill(pid as pid_t, signal_value as c_int) } != 0 {
|
||||
show!(USimpleError::new(1, format!("{}", Error::last_os_error())));
|
||||
if let Err(e) = signal::kill(Pid::from_raw(pid), sig) {
|
||||
show!(Error::from_raw_os_error(e as i32)
|
||||
.map_err_context(|| format!("sending signal to {} failed", pid)));
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_link"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "link ~ (uutils) create a hard (file system) link to FILE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_ln"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "ln ~ (uutils) create a (file system) link to TARGET"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_logname"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "logname ~ (uutils) display the login name of the current user"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_ls"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "ls ~ (uutils) display directory contents"
|
||||
|
|
|
@ -140,6 +140,7 @@ pub mod options {
|
|||
pub static HIDE: &str = "hide";
|
||||
pub static IGNORE: &str = "ignore";
|
||||
pub static CONTEXT: &str = "context";
|
||||
pub static GROUP_DIRECTORIES_FIRST: &str = "group-directories-first";
|
||||
}
|
||||
|
||||
const DEFAULT_TERM_WIDTH: u16 = 80;
|
||||
|
@ -330,6 +331,7 @@ pub struct Config {
|
|||
time_style: TimeStyle,
|
||||
context: bool,
|
||||
selinux_supported: bool,
|
||||
group_directories_first: bool,
|
||||
}
|
||||
|
||||
// Fields that can be removed or added to the long format
|
||||
|
@ -780,6 +782,7 @@ impl Config {
|
|||
false
|
||||
}
|
||||
},
|
||||
group_directories_first: options.is_present(options::GROUP_DIRECTORIES_FIRST),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1397,6 +1400,12 @@ pub fn uu_app<'a>() -> Command<'a> {
|
|||
.long(options::CONTEXT)
|
||||
.help(CONTEXT_HELP_TEXT),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::GROUP_DIRECTORIES_FIRST)
|
||||
.long(options::GROUP_DIRECTORIES_FIRST)
|
||||
.help("group directories before files; can be augmented with \
|
||||
a --sort option, but any use of --sort=none (-U) disables grouping"),
|
||||
)
|
||||
// Positional arguments
|
||||
.arg(
|
||||
Arg::new(options::PATHS)
|
||||
|
@ -1635,6 +1644,28 @@ fn sort_entries(entries: &mut [PathData], config: &Config, out: &mut BufWriter<S
|
|||
if config.reverse {
|
||||
entries.reverse();
|
||||
}
|
||||
|
||||
if config.group_directories_first && config.sort != Sort::None {
|
||||
entries.sort_by_key(|p| {
|
||||
let md = {
|
||||
// We will always try to deref symlinks to group directories, so PathData.md
|
||||
// is not always useful.
|
||||
if p.must_dereference {
|
||||
p.md.get()
|
||||
} else {
|
||||
None
|
||||
}
|
||||
};
|
||||
|
||||
!match md {
|
||||
None | Some(None) => {
|
||||
// If it metadata cannot be determined, treat as a file.
|
||||
get_metadata(p.p_buf.as_path(), true).map_or_else(|_| false, |m| m.is_dir())
|
||||
}
|
||||
Some(Some(m)) => m.is_dir(),
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
fn is_hidden(file_path: &DirEntry) -> bool {
|
||||
|
@ -1701,8 +1732,6 @@ fn enter_directory(
|
|||
};
|
||||
|
||||
// Convert those entries to the PathData struct
|
||||
let mut vec_path_data = Vec::new();
|
||||
|
||||
for raw_entry in read_dir {
|
||||
let dir_entry = match raw_entry {
|
||||
Ok(path) => path,
|
||||
|
@ -1716,12 +1745,11 @@ fn enter_directory(
|
|||
if should_display(&dir_entry, config) {
|
||||
let entry_path_data =
|
||||
PathData::new(dir_entry.path(), Some(Ok(dir_entry)), None, config, false);
|
||||
vec_path_data.push(entry_path_data);
|
||||
entries.push(entry_path_data);
|
||||
};
|
||||
}
|
||||
|
||||
sort_entries(&mut vec_path_data, config, out);
|
||||
entries.append(&mut vec_path_data);
|
||||
sort_entries(&mut entries, config, out);
|
||||
|
||||
// Print total after any error display
|
||||
if config.format == Format::Long || config.alloc_size {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_mkdir"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "mkdir ~ (uutils) create DIRECTORY"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_mkfifo"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "mkfifo ~ (uutils) create FIFOs (named pipes)"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_mknod"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "mknod ~ (uutils) create special file NAME of TYPE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_mktemp"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "mktemp ~ (uutils) create and display a temporary file or directory from TEMPLATE"
|
||||
|
|
|
@ -17,7 +17,7 @@ use std::env;
|
|||
use std::error::Error;
|
||||
use std::fmt::Display;
|
||||
use std::iter;
|
||||
use std::path::{is_separator, Path, PathBuf};
|
||||
use std::path::{is_separator, Path, PathBuf, MAIN_SEPARATOR};
|
||||
|
||||
use rand::Rng;
|
||||
use tempfile::Builder;
|
||||
|
@ -129,6 +129,19 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
};
|
||||
let filename = path.file_name();
|
||||
let template = filename.unwrap().to_str().unwrap();
|
||||
// If the command line was `mktemp aXXX/b`, then we will
|
||||
// find that `tmp`, which is the result of getting the
|
||||
// parent when treating the argument as a path, contains
|
||||
// at least three consecutive Xs. This means that there
|
||||
// was a path separator in the suffix, which is not
|
||||
// allowed.
|
||||
if tmp.display().to_string().contains("XXX") {
|
||||
return Err(MkTempError::SuffixContainsDirSeparator(format!(
|
||||
"{}{}",
|
||||
MAIN_SEPARATOR, template
|
||||
))
|
||||
.into());
|
||||
}
|
||||
(template, tmp)
|
||||
}
|
||||
} else {
|
||||
|
@ -139,12 +152,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
let dry_run = matches.is_present(OPT_DRY_RUN);
|
||||
let suppress_file_err = matches.is_present(OPT_QUIET);
|
||||
|
||||
let (prefix, rand, suffix) = parse_template(template, matches.value_of(OPT_SUFFIX))?;
|
||||
|
||||
if matches.is_present(OPT_TMPDIR) && PathBuf::from(prefix).is_absolute() {
|
||||
// If `--tmpdir` is given, the template cannot be an absolute
|
||||
// path. For example, `mktemp --tmpdir=a /XXX` is not allowed.
|
||||
if matches.is_present(OPT_TMPDIR) && PathBuf::from(template).is_absolute() {
|
||||
return Err(MkTempError::InvalidTemplate(template.into()).into());
|
||||
}
|
||||
|
||||
let (prefix, rand, suffix) = parse_template(template, matches.value_of(OPT_SUFFIX))?;
|
||||
|
||||
let res = if dry_run {
|
||||
dry_exec(tmpdir, prefix, rand, suffix)
|
||||
} else {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_more"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "more ~ (uutils) input perusal filter"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_mv"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "mv ~ (uutils) move (rename) SOURCE to DESTINATION"
|
||||
|
|
|
@ -13,7 +13,7 @@ mod error;
|
|||
#[macro_use]
|
||||
extern crate uucore;
|
||||
|
||||
use clap::{crate_version, Arg, ArgMatches, Command};
|
||||
use clap::{crate_version, Arg, ArgMatches, Command, ErrorKind};
|
||||
use std::env;
|
||||
use std::ffi::OsString;
|
||||
use std::fs;
|
||||
|
@ -70,13 +70,26 @@ static ARG_FILES: &str = "files";
|
|||
|
||||
#[uucore::main]
|
||||
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||
let matches = uu_app()
|
||||
.after_help(&*format!(
|
||||
"{}\n{}",
|
||||
LONG_HELP,
|
||||
backup_control::BACKUP_CONTROL_LONG_HELP
|
||||
))
|
||||
.get_matches_from(args);
|
||||
let help = format!(
|
||||
"{}\n{}",
|
||||
LONG_HELP,
|
||||
backup_control::BACKUP_CONTROL_LONG_HELP
|
||||
);
|
||||
let mut app = uu_app().after_help(&*help);
|
||||
let matches = app
|
||||
.try_get_matches_from_mut(args)
|
||||
.unwrap_or_else(|e| e.exit());
|
||||
|
||||
if !matches.is_present(OPT_TARGET_DIRECTORY) && matches.occurrences_of(ARG_FILES) == 1 {
|
||||
app.error(
|
||||
ErrorKind::TooFewValues,
|
||||
format!(
|
||||
"The argument '<{}>...' requires at least 2 values, but only 1 was provided",
|
||||
ARG_FILES
|
||||
),
|
||||
)
|
||||
.exit();
|
||||
}
|
||||
|
||||
let files: Vec<OsString> = matches
|
||||
.values_of_os(ARG_FILES)
|
||||
|
@ -181,7 +194,7 @@ pub fn uu_app<'a>() -> Command<'a> {
|
|||
Arg::new(ARG_FILES)
|
||||
.multiple_occurrences(true)
|
||||
.takes_value(true)
|
||||
.min_values(2)
|
||||
.min_values(1)
|
||||
.required(true)
|
||||
.allow_invalid_utf8(true)
|
||||
.value_hint(clap::ValueHint::AnyPath)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_nice"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "nice ~ (uutils) run PROGRAM with modified scheduling priority"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_nl"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "nl ~ (uutils) display input with added line numbers"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_nohup"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "nohup ~ (uutils) run COMMAND, ignoring hangup signals"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_nproc"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "nproc ~ (uutils) display the number of processing units available"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_numfmt"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "numfmt ~ (uutils) reformat NUMBER"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_od"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "od ~ (uutils) display formatted representation of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_paste"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "paste ~ (uutils) merge lines from inputs"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_pathchk"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "pathchk ~ (uutils) diagnose invalid or non-portable PATHNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_pinky"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "pinky ~ (uutils) display user information"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_pr"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "pr ~ (uutils) convert text files for printing"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_printenv"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "printenv ~ (uutils) display value of environment VAR"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_printf"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = [
|
||||
"Nathan Ross",
|
||||
"uutils developers",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_ptx"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "ptx ~ (uutils) display a permuted index of input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_pwd"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "pwd ~ (uutils) display current working directory"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_readlink"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "readlink ~ (uutils) display resolved path of PATHNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_realpath"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "realpath ~ (uutils) display resolved absolute path of PATHNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_relpath"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "relpath ~ (uutils) display relative path of PATHNAME_TO from PATHNAME_FROM"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_rm"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "rm ~ (uutils) remove PATHNAME"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_rmdir"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "rmdir ~ (uutils) remove empty DIRECTORY"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_runcon"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "runcon ~ (uutils) run command with specified security context"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# spell-checker:ignore bigdecimal
|
||||
[package]
|
||||
name = "uu_seq"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "seq ~ (uutils) display a sequence of numbers"
|
||||
|
|
|
@ -31,20 +31,20 @@ impl SeqError {
|
|||
/// The [`String`] argument as read from the command-line.
|
||||
fn arg(&self) -> &str {
|
||||
match self {
|
||||
SeqError::ParseError(s, _) => s,
|
||||
SeqError::ZeroIncrement(s) => s,
|
||||
Self::ParseError(s, _) => s,
|
||||
Self::ZeroIncrement(s) => s,
|
||||
}
|
||||
}
|
||||
|
||||
/// The type of argument that is causing the error.
|
||||
fn argtype(&self) -> &str {
|
||||
match self {
|
||||
SeqError::ParseError(_, e) => match e {
|
||||
Self::ParseError(_, e) => match e {
|
||||
ParseNumberError::Float => "floating point argument",
|
||||
ParseNumberError::Nan => "'not-a-number' argument",
|
||||
ParseNumberError::Hex => "hexadecimal argument",
|
||||
},
|
||||
SeqError::ZeroIncrement(_) => "Zero increment value",
|
||||
Self::ZeroIncrement(_) => "Zero increment value",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,18 +53,16 @@ impl UError for SeqError {
|
|||
fn code(&self) -> i32 {
|
||||
1
|
||||
}
|
||||
|
||||
fn usage(&self) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for SeqError {}
|
||||
|
||||
impl Display for SeqError {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(
|
||||
f,
|
||||
"invalid {}: {}\nTry '{} --help' for more information.",
|
||||
self.argtype(),
|
||||
self.arg().quote(),
|
||||
uucore::execution_phrase(),
|
||||
)
|
||||
write!(f, "invalid {}: {}", self.argtype(), self.arg().quote())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_shred"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "shred ~ (uutils) hide former FILE contents with repeated overwrites"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_shuf"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "shuf ~ (uutils) display random permutations of input lines"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_sleep"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "sleep ~ (uutils) pause for DURATION"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_sort"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "sort ~ (uutils) sort input lines"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_split"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "split ~ (uutils) split input into output files"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_stat"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "stat ~ (uutils) display FILE status"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_stdbuf"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "stdbuf ~ (uutils) run COMMAND with modified standard stream buffering"
|
||||
|
@ -20,7 +20,7 @@ tempfile = "3"
|
|||
uucore = { version=">=0.0.11", package="uucore", path="../../uucore" }
|
||||
|
||||
[build-dependencies]
|
||||
libstdbuf = { version="0.0.13", package="uu_stdbuf_libstdbuf", path="src/libstdbuf" }
|
||||
libstdbuf = { version="0.0.14", package="uu_stdbuf_libstdbuf", path="src/libstdbuf" }
|
||||
|
||||
[[bin]]
|
||||
name = "stdbuf"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_stdbuf_libstdbuf"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "stdbuf/libstdbuf ~ (uutils); dynamic library required for stdbuf"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_sum"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "sum ~ (uutils) display checksum and block counts for input"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_sync"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "sync ~ (uutils) synchronize cache writes to storage"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "uu_tac"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "tac ~ (uutils) concatenate and display input lines in reverse order"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# spell-checker:ignore (libs) kqueue
|
||||
[package]
|
||||
name = "uu_tail"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "tail ~ (uutils) display the last lines of input"
|
||||
|
@ -27,7 +27,7 @@ winapi = { version="0.3", features=["fileapi", "handleapi", "processthreadsapi",
|
|||
winapi-util = { version= "0.1.5" }
|
||||
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
nix = { version = "0.24.1", default-features = false, features=["fs"] }
|
||||
nix = { version = "0.24.1", features = ["fs"] }
|
||||
|
||||
[[bin]]
|
||||
name = "tail"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_tee"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "tee ~ (uutils) display input and copy to FILE"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_test"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "test ~ (uutils) evaluate comparison and file type expressions"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_timeout"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "timeout ~ (uutils) run COMMAND with a DURATION time limit"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_touch"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "touch ~ (uutils) change FILE timestamps"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_tr"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "tr ~ (uutils) translate characters within input and display"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "uu_true"
|
||||
version = "0.0.13"
|
||||
version = "0.0.14"
|
||||
authors = ["uutils developers"]
|
||||
license = "MIT"
|
||||
description = "true ~ (uutils) do nothing and succeed"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue