1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 03:57:44 +00:00

Merge branch 'main' into tail_notify

This commit is contained in:
Jan Scheer 2022-05-18 14:28:19 +02:00
commit 6a1cf72316
No known key found for this signature in database
GPG key ID: C62AD4C29E2B9828
11 changed files with 195 additions and 141 deletions

212
Cargo.lock generated
View file

@ -256,9 +256,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "3.1.15" version = "3.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85a35a599b11c089a7f49105658d089b8f2cf0882993c17daf6de15285c2c35d" checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
dependencies = [ dependencies = [
"atty", "atty",
"bitflags", "bitflags",
@ -277,7 +277,7 @@ version = "3.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da92e6facd8d73c22745a5d3cbb59bdf8e46e3235c923e516527d8e81eec14a4" checksum = "da92e6facd8d73c22745a5d3cbb59bdf8e46e3235c923e516527d8e81eec14a4"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
] ]
[[package]] [[package]]
@ -316,7 +316,7 @@ version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"clap_complete", "clap_complete",
"conv", "conv",
"filetime", "filetime",
@ -2133,7 +2133,7 @@ checksum = "7cf7d77f457ef8dfa11e4cd5933c5ddb5dc52a94664071951219a97710f0a32b"
name = "uu_arch" name = "uu_arch"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"platform-info", "platform-info",
"uucore", "uucore",
] ]
@ -2142,7 +2142,7 @@ dependencies = [
name = "uu_base32" name = "uu_base32"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2158,7 +2158,7 @@ dependencies = [
name = "uu_basename" name = "uu_basename"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2166,7 +2166,7 @@ dependencies = [
name = "uu_basenc" name = "uu_basenc"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uu_base32", "uu_base32",
"uucore", "uucore",
] ]
@ -2176,7 +2176,7 @@ name = "uu_cat"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"clap 3.1.15", "clap 3.1.18",
"nix", "nix",
"thiserror", "thiserror",
"unix_socket", "unix_socket",
@ -2187,7 +2187,7 @@ dependencies = [
name = "uu_chcon" name = "uu_chcon"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"fts-sys", "fts-sys",
"libc", "libc",
"selinux", "selinux",
@ -2199,7 +2199,7 @@ dependencies = [
name = "uu_chgrp" name = "uu_chgrp"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2207,7 +2207,7 @@ dependencies = [
name = "uu_chmod" name = "uu_chmod"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2216,7 +2216,7 @@ dependencies = [
name = "uu_chown" name = "uu_chown"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2224,7 +2224,7 @@ dependencies = [
name = "uu_chroot" name = "uu_chroot"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2232,7 +2232,7 @@ dependencies = [
name = "uu_cksum" name = "uu_cksum"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2240,7 +2240,7 @@ dependencies = [
name = "uu_comm" name = "uu_comm"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2248,7 +2248,7 @@ dependencies = [
name = "uu_cp" name = "uu_cp"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"exacl", "exacl",
"filetime", "filetime",
"ioctl-sys", "ioctl-sys",
@ -2265,7 +2265,7 @@ dependencies = [
name = "uu_csplit" name = "uu_csplit"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"regex", "regex",
"thiserror", "thiserror",
"uucore", "uucore",
@ -2277,7 +2277,7 @@ version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"bstr", "bstr",
"clap 3.1.15", "clap 3.1.18",
"memchr 2.5.0", "memchr 2.5.0",
"uucore", "uucore",
] ]
@ -2287,7 +2287,7 @@ name = "uu_date"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
"winapi 0.3.9", "winapi 0.3.9",
@ -2298,7 +2298,7 @@ name = "uu_dd"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"byte-unit", "byte-unit",
"clap 3.1.15", "clap 3.1.18",
"gcd", "gcd",
"libc", "libc",
"signal-hook", "signal-hook",
@ -2309,7 +2309,7 @@ dependencies = [
name = "uu_df" name = "uu_df"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"number_prefix", "number_prefix",
"unicode-width", "unicode-width",
"uucore", "uucore",
@ -2319,7 +2319,7 @@ dependencies = [
name = "uu_dir" name = "uu_dir"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"selinux", "selinux",
"uu_ls", "uu_ls",
"uucore", "uucore",
@ -2329,7 +2329,7 @@ dependencies = [
name = "uu_dircolors" name = "uu_dircolors"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"glob", "glob",
"uucore", "uucore",
] ]
@ -2338,7 +2338,7 @@ dependencies = [
name = "uu_dirname" name = "uu_dirname"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2347,7 +2347,7 @@ name = "uu_du"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"glob", "glob",
"uucore", "uucore",
"winapi 0.3.9", "winapi 0.3.9",
@ -2357,7 +2357,7 @@ dependencies = [
name = "uu_echo" name = "uu_echo"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2365,7 +2365,7 @@ dependencies = [
name = "uu_env" name = "uu_env"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"rust-ini", "rust-ini",
"uucore", "uucore",
] ]
@ -2374,7 +2374,7 @@ dependencies = [
name = "uu_expand" name = "uu_expand"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"unicode-width", "unicode-width",
"uucore", "uucore",
] ]
@ -2383,7 +2383,7 @@ dependencies = [
name = "uu_expr" name = "uu_expr"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"num-bigint", "num-bigint",
"num-traits", "num-traits",
"onig", "onig",
@ -2394,7 +2394,7 @@ dependencies = [
name = "uu_factor" name = "uu_factor"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"coz", "coz",
"num-traits", "num-traits",
"paste", "paste",
@ -2408,7 +2408,7 @@ dependencies = [
name = "uu_false" name = "uu_false"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2416,7 +2416,7 @@ dependencies = [
name = "uu_fmt" name = "uu_fmt"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"unicode-width", "unicode-width",
"uucore", "uucore",
] ]
@ -2425,7 +2425,7 @@ dependencies = [
name = "uu_fold" name = "uu_fold"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2433,7 +2433,7 @@ dependencies = [
name = "uu_groups" name = "uu_groups"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2443,7 +2443,7 @@ version = "0.0.13"
dependencies = [ dependencies = [
"blake2b_simd", "blake2b_simd",
"blake3", "blake3",
"clap 3.1.15", "clap 3.1.18",
"digest", "digest",
"hex", "hex",
"md-5", "md-5",
@ -2459,7 +2459,7 @@ dependencies = [
name = "uu_head" name = "uu_head"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"memchr 2.5.0", "memchr 2.5.0",
"uucore", "uucore",
] ]
@ -2468,7 +2468,7 @@ dependencies = [
name = "uu_hostid" name = "uu_hostid"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2477,7 +2477,7 @@ dependencies = [
name = "uu_hostname" name = "uu_hostname"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"hostname", "hostname",
"uucore", "uucore",
"winapi 0.3.9", "winapi 0.3.9",
@ -2487,7 +2487,7 @@ dependencies = [
name = "uu_id" name = "uu_id"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"selinux", "selinux",
"uucore", "uucore",
] ]
@ -2496,7 +2496,7 @@ dependencies = [
name = "uu_install" name = "uu_install"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"file_diff", "file_diff",
"filetime", "filetime",
"libc", "libc",
@ -2508,7 +2508,7 @@ dependencies = [
name = "uu_join" name = "uu_join"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"memchr 2.5.0", "memchr 2.5.0",
"uucore", "uucore",
] ]
@ -2517,7 +2517,7 @@ dependencies = [
name = "uu_kill" name = "uu_kill"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2526,7 +2526,7 @@ dependencies = [
name = "uu_link" name = "uu_link"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2534,7 +2534,7 @@ dependencies = [
name = "uu_ln" name = "uu_ln"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2542,7 +2542,7 @@ dependencies = [
name = "uu_logname" name = "uu_logname"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2553,7 +2553,7 @@ version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"glob", "glob",
"lazy_static", "lazy_static",
"lscolors", "lscolors",
@ -2570,7 +2570,7 @@ dependencies = [
name = "uu_mkdir" name = "uu_mkdir"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2578,7 +2578,7 @@ dependencies = [
name = "uu_mkfifo" name = "uu_mkfifo"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2587,7 +2587,7 @@ dependencies = [
name = "uu_mknod" name = "uu_mknod"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2596,7 +2596,7 @@ dependencies = [
name = "uu_mktemp" name = "uu_mktemp"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"rand", "rand",
"tempfile", "tempfile",
"uucore", "uucore",
@ -2607,7 +2607,7 @@ name = "uu_more"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"clap 3.1.15", "clap 3.1.18",
"crossterm", "crossterm",
"nix", "nix",
"unicode-segmentation", "unicode-segmentation",
@ -2619,7 +2619,7 @@ dependencies = [
name = "uu_mv" name = "uu_mv"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"fs_extra", "fs_extra",
"uucore", "uucore",
] ]
@ -2628,7 +2628,7 @@ dependencies = [
name = "uu_nice" name = "uu_nice"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"nix", "nix",
"uucore", "uucore",
@ -2638,7 +2638,7 @@ dependencies = [
name = "uu_nl" name = "uu_nl"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"regex", "regex",
"uucore", "uucore",
] ]
@ -2648,7 +2648,7 @@ name = "uu_nohup"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2657,7 +2657,7 @@ dependencies = [
name = "uu_nproc" name = "uu_nproc"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"num_cpus", "num_cpus",
"uucore", "uucore",
@ -2667,7 +2667,7 @@ dependencies = [
name = "uu_numfmt" name = "uu_numfmt"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2676,7 +2676,7 @@ name = "uu_od"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"clap 3.1.15", "clap 3.1.18",
"half", "half",
"uucore", "uucore",
] ]
@ -2685,7 +2685,7 @@ dependencies = [
name = "uu_paste" name = "uu_paste"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2693,7 +2693,7 @@ dependencies = [
name = "uu_pathchk" name = "uu_pathchk"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2702,7 +2702,7 @@ dependencies = [
name = "uu_pinky" name = "uu_pinky"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2711,7 +2711,7 @@ name = "uu_pr"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"itertools", "itertools",
"quick-error", "quick-error",
"regex", "regex",
@ -2722,7 +2722,7 @@ dependencies = [
name = "uu_printenv" name = "uu_printenv"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2730,7 +2730,7 @@ dependencies = [
name = "uu_printf" name = "uu_printf"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2738,7 +2738,7 @@ dependencies = [
name = "uu_ptx" name = "uu_ptx"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"regex", "regex",
"uucore", "uucore",
] ]
@ -2747,7 +2747,7 @@ dependencies = [
name = "uu_pwd" name = "uu_pwd"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2755,7 +2755,7 @@ dependencies = [
name = "uu_readlink" name = "uu_readlink"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2763,7 +2763,7 @@ dependencies = [
name = "uu_realpath" name = "uu_realpath"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2771,7 +2771,7 @@ dependencies = [
name = "uu_relpath" name = "uu_relpath"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2779,7 +2779,7 @@ dependencies = [
name = "uu_rm" name = "uu_rm"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"remove_dir_all 0.7.0", "remove_dir_all 0.7.0",
"uucore", "uucore",
"walkdir", "walkdir",
@ -2790,7 +2790,7 @@ dependencies = [
name = "uu_rmdir" name = "uu_rmdir"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -2799,7 +2799,7 @@ dependencies = [
name = "uu_runcon" name = "uu_runcon"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"selinux", "selinux",
"thiserror", "thiserror",
@ -2811,7 +2811,7 @@ name = "uu_seq"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"bigdecimal", "bigdecimal",
"clap 3.1.15", "clap 3.1.18",
"num-bigint", "num-bigint",
"num-traits", "num-traits",
"uucore", "uucore",
@ -2821,7 +2821,7 @@ dependencies = [
name = "uu_shred" name = "uu_shred"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"rand", "rand",
"uucore", "uucore",
] ]
@ -2830,7 +2830,7 @@ dependencies = [
name = "uu_shuf" name = "uu_shuf"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"rand", "rand",
"rand_core", "rand_core",
"uucore", "uucore",
@ -2840,7 +2840,7 @@ dependencies = [
name = "uu_sleep" name = "uu_sleep"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2849,7 +2849,7 @@ name = "uu_sort"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"binary-heap-plus", "binary-heap-plus",
"clap 3.1.15", "clap 3.1.18",
"compare", "compare",
"ctrlc", "ctrlc",
"fnv", "fnv",
@ -2867,7 +2867,7 @@ dependencies = [
name = "uu_split" name = "uu_split"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"memchr 2.5.0", "memchr 2.5.0",
"uucore", "uucore",
] ]
@ -2876,7 +2876,7 @@ dependencies = [
name = "uu_stat" name = "uu_stat"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2884,7 +2884,7 @@ dependencies = [
name = "uu_stdbuf" name = "uu_stdbuf"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"tempfile", "tempfile",
"uu_stdbuf_libstdbuf", "uu_stdbuf_libstdbuf",
"uucore", "uucore",
@ -2904,7 +2904,7 @@ dependencies = [
name = "uu_sum" name = "uu_sum"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -2912,7 +2912,7 @@ dependencies = [
name = "uu_sync" name = "uu_sync"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
"winapi 0.3.9", "winapi 0.3.9",
@ -2922,7 +2922,7 @@ dependencies = [
name = "uu_tac" name = "uu_tac"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"memchr 2.5.0", "memchr 2.5.0",
"memmap2", "memmap2",
"regex", "regex",
@ -2933,7 +2933,7 @@ dependencies = [
name = "uu_tail" name = "uu_tail"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"nix", "nix",
"notify", "notify",
@ -2945,7 +2945,7 @@ dependencies = [
name = "uu_tee" name = "uu_tee"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"retain_mut", "retain_mut",
"uucore", "uucore",
@ -2955,7 +2955,7 @@ dependencies = [
name = "uu_test" name = "uu_test"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"redox_syscall", "redox_syscall",
"uucore", "uucore",
@ -2965,7 +2965,7 @@ dependencies = [
name = "uu_timeout" name = "uu_timeout"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"nix", "nix",
"uucore", "uucore",
@ -2975,7 +2975,7 @@ dependencies = [
name = "uu_touch" name = "uu_touch"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"filetime", "filetime",
"time 0.3.9", "time 0.3.9",
"uucore", "uucore",
@ -2986,7 +2986,7 @@ dependencies = [
name = "uu_tr" name = "uu_tr"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"nom", "nom",
"uucore", "uucore",
] ]
@ -2995,7 +2995,7 @@ dependencies = [
name = "uu_true" name = "uu_true"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3003,7 +3003,7 @@ dependencies = [
name = "uu_truncate" name = "uu_truncate"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3011,7 +3011,7 @@ dependencies = [
name = "uu_tsort" name = "uu_tsort"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3020,7 +3020,7 @@ name = "uu_tty"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"atty", "atty",
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
] ]
@ -3029,7 +3029,7 @@ dependencies = [
name = "uu_uname" name = "uu_uname"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"platform-info", "platform-info",
"uucore", "uucore",
] ]
@ -3038,7 +3038,7 @@ dependencies = [
name = "uu_unexpand" name = "uu_unexpand"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"unicode-width", "unicode-width",
"uucore", "uucore",
] ]
@ -3047,7 +3047,7 @@ dependencies = [
name = "uu_uniq" name = "uu_uniq"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"strum", "strum",
"strum_macros", "strum_macros",
"uucore", "uucore",
@ -3057,7 +3057,7 @@ dependencies = [
name = "uu_unlink" name = "uu_unlink"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3066,7 +3066,7 @@ name = "uu_uptime"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"chrono", "chrono",
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3074,7 +3074,7 @@ dependencies = [
name = "uu_users" name = "uu_users"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3082,7 +3082,7 @@ dependencies = [
name = "uu_vdir" name = "uu_vdir"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"selinux", "selinux",
"uu_ls", "uu_ls",
"uucore", "uucore",
@ -3093,7 +3093,7 @@ name = "uu_wc"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"bytecount", "bytecount",
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"nix", "nix",
"unicode-width", "unicode-width",
@ -3105,7 +3105,7 @@ dependencies = [
name = "uu_who" name = "uu_who"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"uucore", "uucore",
] ]
@ -3113,7 +3113,7 @@ dependencies = [
name = "uu_whoami" name = "uu_whoami"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"libc", "libc",
"uucore", "uucore",
"winapi 0.3.9", "winapi 0.3.9",
@ -3123,7 +3123,7 @@ dependencies = [
name = "uu_yes" name = "uu_yes"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"nix", "nix",
"uucore", "uucore",
] ]
@ -3132,7 +3132,7 @@ dependencies = [
name = "uucore" name = "uucore"
version = "0.0.13" version = "0.0.13"
dependencies = [ dependencies = [
"clap 3.1.15", "clap 3.1.18",
"data-encoding", "data-encoding",
"data-encoding-macro", "data-encoding-macro",
"dns-lookup", "dns-lookup",

View file

@ -388,7 +388,7 @@ fn parse_bytes_no_x(s: &str) -> Result<u64, ParseError> {
let (num, multiplier) = match (s.find('c'), s.rfind('w'), s.rfind('b')) { let (num, multiplier) = match (s.find('c'), s.rfind('w'), s.rfind('b')) {
(None, None, None) => match uucore::parse_size::parse_size(s) { (None, None, None) => match uucore::parse_size::parse_size(s) {
Ok(n) => (n, 1), Ok(n) => (n, 1),
Err(ParseSizeError::ParseFailure(s)) => { Err(ParseSizeError::InvalidSuffix(s)) | Err(ParseSizeError::ParseFailure(s)) => {
return Err(ParseError::MultiplierStringParseFailure(s)) return Err(ParseError::MultiplierStringParseFailure(s))
} }
Err(ParseSizeError::SizeTooBig(s)) => { Err(ParseSizeError::SizeTooBig(s)) => {

View file

@ -121,6 +121,7 @@ impl Default for Options {
enum OptionsError { enum OptionsError {
BlockSizeTooLarge(String), BlockSizeTooLarge(String),
InvalidBlockSize(String), InvalidBlockSize(String),
InvalidSuffix(String),
/// An error getting the columns to display in the output table. /// An error getting the columns to display in the output table.
ColumnError(ColumnError), ColumnError(ColumnError),
@ -139,6 +140,9 @@ impl fmt::Display for OptionsError {
// TODO This needs to vary based on whether `--block-size` // TODO This needs to vary based on whether `--block-size`
// or `-B` were provided. // or `-B` were provided.
Self::InvalidBlockSize(s) => write!(f, "invalid --block-size argument {}", s), Self::InvalidBlockSize(s) => write!(f, "invalid --block-size argument {}", s),
// TODO This needs to vary based on whether `--block-size`
// or `-B` were provided.
Self::InvalidSuffix(s) => write!(f, "invalid suffix in --block-size argument {}", s),
Self::ColumnError(ColumnError::MultipleColumns(s)) => write!( Self::ColumnError(ColumnError::MultipleColumns(s)) => write!(
f, f,
"option --output: field {} used more than once", "option --output: field {} used more than once",
@ -174,6 +178,7 @@ impl Options {
show_local_fs: matches.is_present(OPT_LOCAL), show_local_fs: matches.is_present(OPT_LOCAL),
show_all_fs: matches.is_present(OPT_ALL), show_all_fs: matches.is_present(OPT_ALL),
block_size: block_size_from_matches(matches).map_err(|e| match e { block_size: block_size_from_matches(matches).map_err(|e| match e {
ParseSizeError::InvalidSuffix(s) => OptionsError::InvalidSuffix(s),
ParseSizeError::SizeTooBig(_) => OptionsError::BlockSizeTooLarge( ParseSizeError::SizeTooBig(_) => OptionsError::BlockSizeTooLarge(
matches.value_of(OPT_BLOCKSIZE).unwrap().to_string(), matches.value_of(OPT_BLOCKSIZE).unwrap().to_string(),
), ),

View file

@ -953,8 +953,10 @@ impl Threshold {
fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String { fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String {
// NOTE: // NOTE:
// GNU's du echos affected flag, -B or --block-size (-t or --threshold), depending user's selection // GNU's du echos affected flag, -B or --block-size (-t or --threshold), depending user's selection
// GNU's du does distinguish between "invalid (suffix in) argument"
match error { match error {
ParseSizeError::InvalidSuffix(_) => {
format!("invalid suffix in --{} argument {}", option, s.quote())
}
ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()),
ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()),
} }

View file

@ -679,8 +679,10 @@ fn open_input_peek_reader(
fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String { fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String {
// NOTE: // NOTE:
// GNU's od echos affected flag, -N or --read-bytes (-j or --skip-bytes, etc.), depending user's selection // GNU's od echos affected flag, -N or --read-bytes (-j or --skip-bytes, etc.), depending user's selection
// GNU's od does distinguish between "invalid (suffix in) argument"
match error { match error {
ParseSizeError::InvalidSuffix(_) => {
format!("invalid suffix in --{} argument {}", option, s.quote())
}
ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()),
ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()),
} }

View file

@ -362,8 +362,10 @@ impl GlobalSettings {
size size
)) ))
}) })
} else if size_string.starts_with(|c: char| c.is_ascii_digit()) {
Err(ParseSizeError::InvalidSuffix("invalid suffix".to_string()))
} else { } else {
Err(ParseSizeError::ParseFailure("invalid suffix".to_string())) Err(ParseSizeError::ParseFailure("parse failure".to_string()))
} }
} }
@ -1833,8 +1835,10 @@ fn open(path: impl AsRef<OsStr>) -> UResult<Box<dyn Read + Send>> {
fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String { fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String {
// NOTE: // NOTE:
// GNU's sort echos affected flag, -S or --buffer-size, depending user's selection // GNU's sort echos affected flag, -S or --buffer-size, depending user's selection
// GNU's sort does distinguish between "invalid (suffix in) argument"
match error { match error {
ParseSizeError::InvalidSuffix(_) => {
format!("invalid suffix in --{} argument {}", option, s.quote())
}
ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()),
ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()),
} }

View file

@ -72,7 +72,8 @@ pub fn parse_size(size: &str) -> Result<u64, ParseSizeError> {
"EB" | "eB" => (1000, 6), "EB" | "eB" => (1000, 6),
"ZB" | "zB" => (1000, 7), "ZB" | "zB" => (1000, 7),
"YB" | "yB" => (1000, 8), "YB" | "yB" => (1000, 8),
_ => return Err(ParseSizeError::parse_failure(size)), _ if numeric_string.is_empty() => return Err(ParseSizeError::parse_failure(size)),
_ => return Err(ParseSizeError::invalid_suffix(size)),
}; };
let factor = match u64::try_from(base.pow(exponent)) { let factor = match u64::try_from(base.pow(exponent)) {
Ok(n) => n, Ok(n) => n,
@ -85,6 +86,7 @@ pub fn parse_size(size: &str) -> Result<u64, ParseSizeError> {
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
pub enum ParseSizeError { pub enum ParseSizeError {
InvalidSuffix(String), // Suffix
ParseFailure(String), // Syntax ParseFailure(String), // Syntax
SizeTooBig(String), // Overflow SizeTooBig(String), // Overflow
} }
@ -92,6 +94,7 @@ pub enum ParseSizeError {
impl Error for ParseSizeError { impl Error for ParseSizeError {
fn description(&self) -> &str { fn description(&self) -> &str {
match *self { match *self {
ParseSizeError::InvalidSuffix(ref s) => &*s,
ParseSizeError::ParseFailure(ref s) => &*s, ParseSizeError::ParseFailure(ref s) => &*s,
ParseSizeError::SizeTooBig(ref s) => &*s, ParseSizeError::SizeTooBig(ref s) => &*s,
} }
@ -101,7 +104,9 @@ impl Error for ParseSizeError {
impl fmt::Display for ParseSizeError { impl fmt::Display for ParseSizeError {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
let s = match self { let s = match self {
ParseSizeError::ParseFailure(s) | ParseSizeError::SizeTooBig(s) => s, ParseSizeError::InvalidSuffix(s)
| ParseSizeError::ParseFailure(s)
| ParseSizeError::SizeTooBig(s) => s,
}; };
write!(f, "{}", s) write!(f, "{}", s)
} }
@ -111,6 +116,10 @@ impl fmt::Display for ParseSizeError {
// but there's a lot of downstream code that constructs these errors manually // but there's a lot of downstream code that constructs these errors manually
// that would be affected // that would be affected
impl ParseSizeError { impl ParseSizeError {
fn invalid_suffix(s: &str) -> Self {
Self::InvalidSuffix(format!("{}", s.quote()))
}
fn parse_failure(s: &str) -> Self { fn parse_failure(s: &str) -> Self {
// stderr on linux (GNU coreutils 8.32) (LC_ALL=C) // stderr on linux (GNU coreutils 8.32) (LC_ALL=C)
// has to be handled in the respective uutils because strings differ, e.g.: // has to be handled in the respective uutils because strings differ, e.g.:
@ -237,20 +246,20 @@ mod tests {
); );
} }
#[test]
fn invalid_suffix() {
let test_strings = ["328hdsf3290", "5mib", "1e2", "1H", "1.2"];
for &test_string in &test_strings {
assert_eq!(
parse_size(test_string).unwrap_err(),
ParseSizeError::InvalidSuffix(format!("{}", test_string.quote()))
);
}
}
#[test] #[test]
fn invalid_syntax() { fn invalid_syntax() {
let test_strings = [ let test_strings = ["biB", "-", "+", "", "-1", ""];
"328hdsf3290",
"5MiB nonsense",
"5mib",
"biB",
"-",
"+",
"",
"-1",
"1e2",
"",
];
for &test_string in &test_strings { for &test_string in &test_strings {
assert_eq!( assert_eq!(
parse_size(test_string).unwrap_err(), parse_size(test_string).unwrap_err(),

View file

@ -566,6 +566,19 @@ fn test_invalid_block_size() {
.stderr_contains("invalid --block-size argument '0K'"); .stderr_contains("invalid --block-size argument '0K'");
} }
#[test]
fn test_invalid_block_size_suffix() {
new_ucmd!()
.arg("--block-size=1H")
.fails()
.stderr_contains("invalid suffix in --block-size argument '1H'");
new_ucmd!()
.arg("--block-size=1.2")
.fails()
.stderr_contains("invalid suffix in --block-size argument '1.2'");
}
#[test] #[test]
fn test_output_selects_columns() { fn test_output_selects_columns() {
let output = new_ucmd!() let output = new_ucmd!()

View file

@ -94,7 +94,13 @@ fn test_du_invalid_size() {
.arg("/tmp") .arg("/tmp")
.fails() .fails()
.code_is(1) .code_is(1)
.stderr_only(format!("du: invalid --{} argument '1fb4t'", s)); .stderr_only(format!("du: invalid suffix in --{} argument '1fb4t'", s));
ts.ucmd()
.arg(format!("--{}=x", s))
.arg("/tmp")
.fails()
.code_is(1)
.stderr_only(format!("du: invalid --{} argument 'x'", s));
#[cfg(not(target_pointer_width = "128"))] #[cfg(not(target_pointer_width = "128"))]
ts.ucmd() ts.ucmd()
.arg(format!("--{}=1Y", s)) .arg(format!("--{}=1Y", s))

View file

@ -827,7 +827,8 @@ fn test_traditional_only_label() {
#[test] #[test]
fn test_od_invalid_bytes() { fn test_od_invalid_bytes() {
const INVALID_SIZE: &str = "1fb4t"; const INVALID_SIZE: &str = "x";
const INVALID_SUFFIX: &str = "1fb4t";
const BIG_SIZE: &str = "1Y"; const BIG_SIZE: &str = "1Y";
// NOTE: // NOTE:
@ -852,6 +853,16 @@ fn test_od_invalid_bytes() {
option, INVALID_SIZE option, INVALID_SIZE
)); ));
new_ucmd!()
.arg(format!("{}={}", option, INVALID_SUFFIX))
.arg("file")
.fails()
.code_is(1)
.stderr_only(format!(
"od: invalid suffix in {} argument '{}'",
option, INVALID_SUFFIX
));
#[cfg(not(target_pointer_width = "128"))] #[cfg(not(target_pointer_width = "128"))]
new_ucmd!() new_ucmd!()
.arg(format!("{}={}", option, BIG_SIZE)) .arg(format!("{}={}", option, BIG_SIZE))

View file

@ -56,18 +56,20 @@ fn test_buffer_sizes() {
#[test] #[test]
fn test_invalid_buffer_size() { fn test_invalid_buffer_size() {
let buffer_sizes = ["asd", "100f"];
for invalid_buffer_size in &buffer_sizes {
new_ucmd!() new_ucmd!()
.arg("-S") .arg("-S")
.arg(invalid_buffer_size) .arg("asd")
.fails() .fails()
.code_is(2) .code_is(2)
.stderr_only(format!( .stderr_only("sort: invalid --buffer-size argument 'asd'");
"sort: invalid --buffer-size argument '{}'",
invalid_buffer_size new_ucmd!()
)); .arg("-S")
} .arg("100f")
.fails()
.code_is(2)
.stderr_only("sort: invalid suffix in --buffer-size argument '100f'");
#[cfg(not(target_pointer_width = "128"))] #[cfg(not(target_pointer_width = "128"))]
new_ucmd!() new_ucmd!()
.arg("-n") .arg("-n")