diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 96ab83c83..1f4bf590e 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -849,6 +849,7 @@ jobs: name: Test Android builds needs: [ min_version, deps ] runs-on: macos-latest + timeout-minutes: 90 strategy: fail-fast: false matrix: @@ -904,6 +905,7 @@ jobs: name: Tests/FreeBSD test suite needs: [ min_version, deps ] runs-on: ${{ matrix.job.os }} + timeout-minutes: 90 strategy: fail-fast: false matrix: diff --git a/Cargo.lock b/Cargo.lock index 216619eb2..29079ba87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,6 +40,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -114,7 +123,7 @@ dependencies = [ "log", "peeking_take_while", "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "regex", "rustc-hash", "shlex", @@ -172,6 +181,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "bumpalo" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" + [[package]] name = "byte-unit" version = "4.0.14" @@ -222,22 +237,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "time 0.1.44", + "wasm-bindgen", "winapi 0.3.9", ] [[package]] name = "clang-sys" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6b561dcf059c85bbe388e0a7b0a1469acb3934cc0cfa148613a830629e3049" +checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" dependencies = [ "glob", "libc", @@ -261,9 +278,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.15" +version = "3.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bbe24bbd31a185bc2c4f7c2abe80bea13a20d57ee4e55be70ac512bdc76417" +checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" dependencies = [ "atty", "bitflags", @@ -278,11 +295,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "3.1.4" +version = "3.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da92e6facd8d73c22745a5d3cbb59bdf8e46e3235c923e516527d8e81eec14a4" +checksum = "e4179da71abd56c26b54dd0c248cc081c1f43b0a1a7e8448e28e57a29baa993d" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", ] [[package]] @@ -315,13 +332,19 @@ dependencies = [ "custom_derive", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + [[package]] name = "coreutils" version = "0.0.14" dependencies = [ "atty", "chrono", - "clap 3.2.15", + "clap 3.2.17", "clap_complete", "conv", "filetime", @@ -422,6 +445,7 @@ dependencies = [ "uu_split", "uu_stat", "uu_stdbuf", + "uu_stty", "uu_sum", "uu_sync", "uu_tac", @@ -518,7 +542,7 @@ dependencies = [ "cpp_common 0.5.7", "lazy_static", "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "syn", ] @@ -573,9 +597,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -583,9 +607,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -594,33 +618,33 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "lazy_static", "memoffset", + "once_cell", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if 1.0.0", - "lazy_static", + "once_cell", ] [[package]] name = "crossterm" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9f7409c70a38a56216480fba371ee460207dd8926ccf5b4160591759559170" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" dependencies = [ "bitflags", "crossterm_winapi", @@ -643,9 +667,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -653,19 +677,19 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" dependencies = [ - "quote 1.0.18", + "quote 1.0.21", "syn", ] [[package]] name = "ctrlc" -version = "3.2.2" +version = "3.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865" +checksum = "1d91974fbbe88ec1df0c24a4f00f99583667a7e2e6272b2b92d294d81e462173" dependencies = [ "nix", "winapi 0.3.9", @@ -705,9 +729,9 @@ dependencies = [ [[package]] name = "diff" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "digest" @@ -746,9 +770,9 @@ checksum = "453440c271cf5577fd2a40e4942540cb7d0d2f85e27c8d07dd0023c925a67541" [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "env_logger" @@ -787,9 +811,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -814,13 +838,11 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if 1.0.0", "crc32fast", - "libc", "miniz_oxide", ] @@ -866,9 +888,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -876,13 +898,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -899,15 +921,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" - -[[package]] -name = "hashbrown" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] @@ -957,13 +973,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] -name = "indexmap" -version = "1.8.1" +name = "iana-time-zone" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "wasm-bindgen", + "winapi 0.3.9", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown 0.11.2", + "hashbrown", ] [[package]] @@ -1006,15 +1035,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kernel32-sys" @@ -1028,9 +1066,9 @@ dependencies = [ [[package]] name = "kqueue" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97caf428b83f7c86809b7450722cd1f2b1fc7fb23aa7b9dee7e72ed14d048352" +checksum = "4d6112e8f37b59803ac47a42d14f1f3a59bbf72fc6857ffc5be455e28a691f8e" dependencies = [ "kqueue-sys", "libc", @@ -1060,9 +1098,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" @@ -1095,9 +1133,9 @@ dependencies = [ [[package]] name = "lscolors" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24e014efe73b727e5792b6f422a23c04b10ba9d8cdc74b197a25a08db7eac86" +checksum = "074bff749d092e2e818fe954952102f88e21f67fc69f4d350621aab15a1810f1" dependencies = [ "ansi_term", ] @@ -1134,9 +1172,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2e4455be2010e8c5e77f0d10234b30f3a636a5305725609b5a71ad00d22577" +checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" dependencies = [ "libc", ] @@ -1158,18 +1196,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", @@ -1179,14 +1217,16 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" dependencies = [ + "autocfg", "bitflags", "cfg-if 1.0.0", "libc", "memoffset", + "pin-utils", ] [[package]] @@ -1280,9 +1320,9 @@ checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" [[package]] name = "once_cell" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" [[package]] name = "onig" @@ -1298,9 +1338,9 @@ dependencies = [ [[package]] name = "onig_sys" -version = "69.8.0" +version = "69.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf3fbc9b931b6c9af85d219c7943c274a6ad26cff7488a2210215edd5f49bf8" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" dependencies = [ "cc", "pkg-config", @@ -1313,7 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ "dlv-list", - "hashbrown 0.12.0", + "hashbrown", ] [[package]] @@ -1350,7 +1390,7 @@ dependencies = [ "Inflector", "proc-macro-error", "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "syn", ] @@ -1365,9 +1405,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", @@ -1388,9 +1428,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" [[package]] name = "peeking_take_while" @@ -1436,6 +1476,12 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "pkg-config" version = "0.3.25" @@ -1444,9 +1490,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "platform-info" -version = "0.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84332c4de03d567e6f5ea143e35e63ceed534a34f768218aabf57879d7edf2a0" +checksum = "95f26dfd50c79dacf549a8a784734fff83a5e42736487464d782fc8a3a2f5563" dependencies = [ "libc", "winapi 0.3.9", @@ -1478,7 +1524,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "syn", "version_check", ] @@ -1490,15 +1536,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ "unicode-ident", ] @@ -1528,9 +1574,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" [[package]] name = "quote" -version = "1.0.18" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] @@ -1591,9 +1637,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534cfe58d6a18cc17120fbf4635d53d14691c1fe4d951064df9bd326178d7d5a" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -1691,9 +1737,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "same-file" @@ -1852,13 +1898,13 @@ checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" [[package]] name = "strum_macros" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck", "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "rustversion", "syn", ] @@ -1871,12 +1917,12 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.95" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "unicode-ident", ] @@ -1984,7 +2030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" dependencies = [ "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", "syn", ] @@ -2025,9 +2071,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "unicode-linebreak" @@ -2098,7 +2144,7 @@ checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" name = "uu_arch" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "platform-info", "uucore", ] @@ -2107,7 +2153,7 @@ dependencies = [ name = "uu_base32" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2123,7 +2169,7 @@ dependencies = [ name = "uu_basename" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2131,7 +2177,7 @@ dependencies = [ name = "uu_basenc" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uu_base32", "uucore", ] @@ -2141,7 +2187,7 @@ name = "uu_cat" version = "0.0.14" dependencies = [ "atty", - "clap 3.2.15", + "clap 3.2.17", "nix", "thiserror", "unix_socket", @@ -2152,7 +2198,7 @@ dependencies = [ name = "uu_chcon" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "fts-sys", "libc", "selinux", @@ -2164,7 +2210,7 @@ dependencies = [ name = "uu_chgrp" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2172,7 +2218,7 @@ dependencies = [ name = "uu_chmod" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2181,7 +2227,7 @@ dependencies = [ name = "uu_chown" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2189,7 +2235,7 @@ dependencies = [ name = "uu_chroot" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2197,7 +2243,7 @@ dependencies = [ name = "uu_cksum" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2205,7 +2251,7 @@ dependencies = [ name = "uu_comm" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2213,7 +2259,7 @@ dependencies = [ name = "uu_cp" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "exacl", "filetime", "libc", @@ -2229,7 +2275,7 @@ dependencies = [ name = "uu_csplit" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "regex", "thiserror", "uucore", @@ -2241,7 +2287,7 @@ version = "0.0.14" dependencies = [ "atty", "bstr", - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "uucore", ] @@ -2251,7 +2297,7 @@ name = "uu_date" version = "0.0.14" dependencies = [ "chrono", - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", "winapi 0.3.9", @@ -2262,7 +2308,7 @@ name = "uu_dd" version = "0.0.14" dependencies = [ "byte-unit", - "clap 3.2.15", + "clap 3.2.17", "gcd", "libc", "signal-hook", @@ -2273,7 +2319,7 @@ dependencies = [ name = "uu_df" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "unicode-width", "uucore", ] @@ -2282,7 +2328,7 @@ dependencies = [ name = "uu_dir" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "selinux", "uu_ls", "uucore", @@ -2292,7 +2338,7 @@ dependencies = [ name = "uu_dircolors" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "glob", "uucore", ] @@ -2301,7 +2347,7 @@ dependencies = [ name = "uu_dirname" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2310,7 +2356,7 @@ name = "uu_du" version = "0.0.14" dependencies = [ "chrono", - "clap 3.2.15", + "clap 3.2.17", "glob", "uucore", "winapi 0.3.9", @@ -2320,7 +2366,7 @@ dependencies = [ name = "uu_echo" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2328,7 +2374,7 @@ dependencies = [ name = "uu_env" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "rust-ini", "uucore", ] @@ -2337,7 +2383,7 @@ dependencies = [ name = "uu_expand" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "unicode-width", "uucore", ] @@ -2346,7 +2392,7 @@ dependencies = [ name = "uu_expr" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "num-bigint", "num-traits", "onig", @@ -2357,7 +2403,7 @@ dependencies = [ name = "uu_factor" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "coz", "num-traits", "paste", @@ -2371,7 +2417,7 @@ dependencies = [ name = "uu_false" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2379,7 +2425,7 @@ dependencies = [ name = "uu_fmt" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "unicode-width", "uucore", ] @@ -2388,7 +2434,7 @@ dependencies = [ name = "uu_fold" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2396,7 +2442,7 @@ dependencies = [ name = "uu_groups" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2406,7 +2452,7 @@ version = "0.0.14" dependencies = [ "blake2b_simd", "blake3", - "clap 3.2.15", + "clap 3.2.17", "digest", "hex", "md-5", @@ -2422,7 +2468,7 @@ dependencies = [ name = "uu_head" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "uucore", ] @@ -2431,7 +2477,7 @@ dependencies = [ name = "uu_hostid" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2440,7 +2486,7 @@ dependencies = [ name = "uu_hostname" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "hostname", "uucore", "winapi 0.3.9", @@ -2450,7 +2496,7 @@ dependencies = [ name = "uu_id" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "selinux", "uucore", ] @@ -2459,7 +2505,7 @@ dependencies = [ name = "uu_install" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "file_diff", "filetime", "libc", @@ -2471,7 +2517,7 @@ dependencies = [ name = "uu_join" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "uucore", ] @@ -2480,7 +2526,7 @@ dependencies = [ name = "uu_kill" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "nix", "uucore", ] @@ -2489,7 +2535,7 @@ dependencies = [ name = "uu_link" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2497,7 +2543,7 @@ dependencies = [ name = "uu_ln" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2505,7 +2551,7 @@ dependencies = [ name = "uu_logname" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2516,7 +2562,7 @@ version = "0.0.14" dependencies = [ "atty", "chrono", - "clap 3.2.15", + "clap 3.2.17", "glob", "lscolors", "number_prefix", @@ -2532,7 +2578,7 @@ dependencies = [ name = "uu_mkdir" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2540,7 +2586,7 @@ dependencies = [ name = "uu_mkfifo" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2549,7 +2595,7 @@ dependencies = [ name = "uu_mknod" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2558,7 +2604,7 @@ dependencies = [ name = "uu_mktemp" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "rand", "tempfile", "uucore", @@ -2569,7 +2615,7 @@ name = "uu_more" version = "0.0.14" dependencies = [ "atty", - "clap 3.2.15", + "clap 3.2.17", "crossterm", "nix", "unicode-segmentation", @@ -2581,7 +2627,7 @@ dependencies = [ name = "uu_mv" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "fs_extra", "uucore", ] @@ -2590,7 +2636,7 @@ dependencies = [ name = "uu_nice" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "nix", "uucore", @@ -2600,7 +2646,7 @@ dependencies = [ name = "uu_nl" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "regex", "uucore", ] @@ -2610,7 +2656,7 @@ name = "uu_nohup" version = "0.0.14" dependencies = [ "atty", - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2619,7 +2665,7 @@ dependencies = [ name = "uu_nproc" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "num_cpus", "uucore", @@ -2629,7 +2675,7 @@ dependencies = [ name = "uu_numfmt" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2638,7 +2684,7 @@ name = "uu_od" version = "0.0.14" dependencies = [ "byteorder", - "clap 3.2.15", + "clap 3.2.17", "half", "uucore", ] @@ -2647,7 +2693,7 @@ dependencies = [ name = "uu_paste" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2655,7 +2701,7 @@ dependencies = [ name = "uu_pathchk" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2664,7 +2710,7 @@ dependencies = [ name = "uu_pinky" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2673,7 +2719,7 @@ name = "uu_pr" version = "0.0.14" dependencies = [ "chrono", - "clap 3.2.15", + "clap 3.2.17", "itertools", "quick-error", "regex", @@ -2684,7 +2730,7 @@ dependencies = [ name = "uu_printenv" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2692,7 +2738,7 @@ dependencies = [ name = "uu_printf" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2700,7 +2746,7 @@ dependencies = [ name = "uu_ptx" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "regex", "uucore", ] @@ -2709,7 +2755,7 @@ dependencies = [ name = "uu_pwd" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2717,7 +2763,7 @@ dependencies = [ name = "uu_readlink" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2725,7 +2771,7 @@ dependencies = [ name = "uu_realpath" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2733,7 +2779,7 @@ dependencies = [ name = "uu_relpath" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2741,7 +2787,7 @@ dependencies = [ name = "uu_rm" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "remove_dir_all 0.7.0", "uucore", "walkdir", @@ -2752,7 +2798,7 @@ dependencies = [ name = "uu_rmdir" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", ] @@ -2761,7 +2807,7 @@ dependencies = [ name = "uu_runcon" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "selinux", "thiserror", @@ -2773,7 +2819,7 @@ name = "uu_seq" version = "0.0.14" dependencies = [ "bigdecimal", - "clap 3.2.15", + "clap 3.2.17", "num-bigint", "num-traits", "uucore", @@ -2783,7 +2829,7 @@ dependencies = [ name = "uu_shred" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "rand", "uucore", ] @@ -2792,7 +2838,7 @@ dependencies = [ name = "uu_shuf" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "rand", "rand_core", @@ -2803,7 +2849,7 @@ dependencies = [ name = "uu_sleep" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2812,7 +2858,7 @@ name = "uu_sort" version = "0.0.14" dependencies = [ "binary-heap-plus", - "clap 3.2.15", + "clap 3.2.17", "compare", "ctrlc", "fnv", @@ -2830,7 +2876,7 @@ dependencies = [ name = "uu_split" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "uucore", ] @@ -2839,7 +2885,7 @@ dependencies = [ name = "uu_stat" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2847,7 +2893,7 @@ dependencies = [ name = "uu_stdbuf" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "tempfile", "uu_stdbuf_libstdbuf", "uucore", @@ -2863,11 +2909,20 @@ dependencies = [ "uucore", ] +[[package]] +name = "uu_stty" +version = "0.0.14" +dependencies = [ + "clap 3.2.17", + "nix", + "uucore", +] + [[package]] name = "uu_sum" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2875,7 +2930,7 @@ dependencies = [ name = "uu_sync" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", "winapi 0.3.9", @@ -2885,7 +2940,7 @@ dependencies = [ name = "uu_tac" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "memchr 2.5.0", "memmap2", "regex", @@ -2896,7 +2951,7 @@ dependencies = [ name = "uu_tail" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "nix", "notify", @@ -2909,7 +2964,7 @@ dependencies = [ name = "uu_tee" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "retain_mut", "uucore", @@ -2919,7 +2974,7 @@ dependencies = [ name = "uu_test" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "redox_syscall", "uucore", @@ -2929,7 +2984,7 @@ dependencies = [ name = "uu_timeout" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "nix", "uucore", @@ -2939,7 +2994,7 @@ dependencies = [ name = "uu_touch" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "filetime", "time 0.3.9", "uucore", @@ -2950,7 +3005,7 @@ dependencies = [ name = "uu_tr" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "nom", "uucore", ] @@ -2959,7 +3014,7 @@ dependencies = [ name = "uu_true" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2967,7 +3022,7 @@ dependencies = [ name = "uu_truncate" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2975,7 +3030,7 @@ dependencies = [ name = "uu_tsort" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -2984,8 +3039,8 @@ name = "uu_tty" version = "0.0.14" dependencies = [ "atty", - "clap 3.2.15", - "libc", + "clap 3.2.17", + "nix", "uucore", ] @@ -2993,7 +3048,7 @@ dependencies = [ name = "uu_uname" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "platform-info", "uucore", ] @@ -3002,7 +3057,7 @@ dependencies = [ name = "uu_unexpand" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "unicode-width", "uucore", ] @@ -3011,7 +3066,7 @@ dependencies = [ name = "uu_uniq" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "strum", "strum_macros", "uucore", @@ -3021,7 +3076,7 @@ dependencies = [ name = "uu_unlink" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -3030,7 +3085,7 @@ name = "uu_uptime" version = "0.0.14" dependencies = [ "chrono", - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -3038,7 +3093,7 @@ dependencies = [ name = "uu_users" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -3046,7 +3101,7 @@ dependencies = [ name = "uu_vdir" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "selinux", "uu_ls", "uucore", @@ -3057,7 +3112,7 @@ name = "uu_wc" version = "0.0.14" dependencies = [ "bytecount", - "clap 3.2.15", + "clap 3.2.17", "libc", "nix", "unicode-width", @@ -3069,7 +3124,7 @@ dependencies = [ name = "uu_who" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "uucore", ] @@ -3077,7 +3132,7 @@ dependencies = [ name = "uu_whoami" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "uucore", "winapi 0.3.9", @@ -3087,7 +3142,7 @@ dependencies = [ name = "uu_yes" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "libc", "nix", "uucore", @@ -3097,7 +3152,7 @@ dependencies = [ name = "uucore" version = "0.0.14" dependencies = [ - "clap 3.2.15", + "clap 3.2.17", "data-encoding", "data-encoding-macro", "dns-lookup", @@ -3123,14 +3178,14 @@ name = "uucore_procs" version = "0.0.14" dependencies = [ "proc-macro2", - "quote 1.0.18", + "quote 1.0.21", ] [[package]] name = "uuid" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6d5d669b51467dcf7b2f1a796ce0f955f05f01cafda6c19d6e95f730df29238" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" [[package]] name = "vec_map" @@ -3167,6 +3222,60 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote 1.0.21", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote 1.0.21", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote 1.0.21", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + [[package]] name = "which" version = "4.2.5" @@ -3180,9 +3289,9 @@ dependencies = [ [[package]] name = "wild" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035793abb854745033f01a07647a79831eba29ec0be377205f2a25b0aa830020" +checksum = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74" dependencies = [ "glob", ] diff --git a/Cargo.toml b/Cargo.toml index 9c540531c..9fee3727c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -190,6 +190,7 @@ feat_require_unix = [ "nohup", "pathchk", "stat", + "stty", "timeout", "tty", "uname", @@ -261,7 +262,7 @@ uudoc = [ "zip" ] [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } clap_complete = "3.1" -once_cell = "1.13.0" +once_cell = "1.13.1" phf = "0.10.1" selinux = { version="0.2", optional = true } textwrap = { version="0.15", features=["terminal_size"] } @@ -348,6 +349,7 @@ sort = { optional=true, version="0.0.14", package="uu_sort", path="src/uu/so 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" } +stty = { optional=true, version="0.0.14", package="uu_stty", path="src/uu/stty" } 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" } @@ -402,7 +404,7 @@ hex-literal = "0.3.1" rlimit = "0.8.3" [target.'cfg(unix)'.dev-dependencies] -nix = { version = "0.24.2", default-features = false, features = ["process", "signal", "user"] } +nix = { version = "0.25", default-features = false, features = ["process", "signal", "user"] } rust-users = { version="0.11", package="users" } unix_socket = "0.5.0" diff --git a/README.md b/README.md index c9fe6836f..52d84717e 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ uutils is an attempt at writing universal (as in cross-platform) CLI utilities in [Rust](http://www.rust-lang.org). +While all programs hve been implemented, some options might be missing +or different behavior might be experienced. To install it: @@ -408,98 +410,98 @@ Please note that this is not fully accurate: See https://github.com/uutils/coreutils/issues/3336 for the main meta bugs (many are missing). -| Done | WIP | To Do | -|-----------|-----------|--------| -| arch | cp | stty | -| base32 | date | | -| base64 | dd | | -| basename | df | | -| basenc | expr | | -| cat | install | | -| chcon | ls | | -| chgrp | more | | -| chmod | numfmt | | -| chown | od (`--strings` and 128-bit data types missing) | | -| chroot | pr | | -| cksum | printf | | -| comm | sort | | -| csplit | split | | -| cut | tac | | -| dircolors | test | | -| dirname | dir | | -| du | vdir | | -| echo | | | -| env | | | -| expand | | | -| factor | | | -| false | | | -| fmt | | | -| fold | | | -| groups | | | -| hashsum | | | -| head | | | -| hostid | | | -| hostname | | | -| id | | | -| join | | | -| kill | | | -| link | | | -| ln | | | -| logname | | | -| ~~md5sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| ~~sha1sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| ~~sha224sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| ~~sha256sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| ~~sha384sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| ~~sha512sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | | -| mkdir | | | -| mkfifo | | | -| mknod | | | -| mktemp | | | -| mv | | | -| nice | | | -| nl | | | -| nohup | | | -| nproc | | | -| paste | | | -| pathchk | | | -| pinky | | | -| printenv | | | -| ptx | | | -| pwd | | | -| readlink | | | -| realpath | | | -| relpath | | | -| rm | | | -| rmdir | | | -| runcon | | | -| seq | | | -| shred | | | -| shuf | | | -| sleep | | | -| stat | | | -| stdbuf | | | -| sum | | | -| sync | | | -| tail | | | -| tee | | | -| timeout | | | -| touch | | | -| tr | | | -| true | | | -| truncate | | | -| tsort | | | -| tty | | | -| uname | | | -| unexpand | | | -| uniq | | | -| unlink | | | -| uptime | | | -| users | | | -| wc | | | -| who | | | -| whoami | | | -| yes | | | +| Done | WIP | +|-----------|-----------| +| arch | cp | +| base32 | date | +| base64 | dd | +| basename | df | +| basenc | expr | +| cat | install | +| chcon | ls | +| chgrp | more | +| chmod | numfmt | +| chown | od (`--strings` and 128-bit data types missing) | +| chroot | pr | +| cksum | printf | +| comm | sort | +| csplit | split | +| cut | tac | +| dircolors | test | +| dirname | dir | +| du | vdir | +| echo | stty | +| env | | +| expand | | +| factor | | +| false | | +| fmt | | +| fold | | +| groups | | +| hashsum | | +| head | | +| hostid | | +| hostname | | +| id | | +| join | | +| kill | | +| link | | +| ln | | +| logname | | +| ~~md5sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| ~~sha1sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| ~~sha224sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| ~~sha256sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| ~~sha384sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| ~~sha512sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/main/src/uu/hashsum/src/hashsum.rs)) | | +| mkdir | | +| mkfifo | | +| mknod | | +| mktemp | | +| mv | | +| nice | | +| nl | | +| nohup | | +| nproc | | +| paste | | +| pathchk | | +| pinky | | +| printenv | | +| ptx | | +| pwd | | +| readlink | | +| realpath | | +| relpath | | +| rm | | +| rmdir | | +| runcon | | +| seq | | +| shred | | +| shuf | | +| sleep | | +| stat | | +| stdbuf | | +| sum | | +| sync | | +| tail | | +| tee | | +| timeout | | +| touch | | +| tr | | +| true | | +| truncate | | +| tsort | | +| tty | | +| uname | | +| unexpand | | +| uniq | | +| unlink | | +| uptime | | +| users | | +| wc | | +| who | | +| whoami | | +| yes | | ## License diff --git a/deny.toml b/deny.toml index ecc738cfe..e35e9b2e4 100644 --- a/deny.toml +++ b/deny.toml @@ -30,6 +30,7 @@ allow = [ "BSD-3-Clause", "CC0-1.0", "MPL-2.0", # XXX considered copyleft? + "Unicode-DFS-2016", ] copyleft = "deny" allow-osi-fsf-free = "neither" @@ -69,8 +70,6 @@ skip = [ { name = "arrayvec", version = "=0.7.2" }, # flimit/unix_socket { name = "cfg-if", version = "=0.1.10" }, - # indexmap - { name = "hashbrown", version = "=0.11.2" }, # kernel32-sys { name = "winapi", version = "=0.2.8" }, # bindgen 0.59.2 diff --git a/examples/busybox-core.rs b/examples/busybox-core.rs deleted file mode 100644 index 89dd1848d..000000000 --- a/examples/busybox-core.rs +++ /dev/null @@ -1 +0,0 @@ -include!("../src/bin/coreutils.rs"); diff --git a/examples/uuc.rs b/examples/uuc.rs deleted file mode 100644 index 89dd1848d..000000000 --- a/examples/uuc.rs +++ /dev/null @@ -1 +0,0 @@ -include!("../src/bin/coreutils.rs"); diff --git a/src/bin/coreutils.rs b/src/bin/coreutils.rs index 52daf126c..c6914db3f 100644 --- a/src/bin/coreutils.rs +++ b/src/bin/coreutils.rs @@ -147,22 +147,19 @@ fn gen_completions( ) .arg( Arg::new("shell") - .value_parser(clap::builder::PossibleValuesParser::new( - Shell::possible_values(), - )) + .value_parser(clap::builder::EnumValueParser::::new()) .required(true), ) .get_matches_from(std::iter::once(OsString::from("completion")).chain(args)); let utility = matches.value_of("utility").unwrap(); - let shell = matches.value_of("shell").unwrap(); + let shell = matches.get_one::("shell").unwrap().to_owned(); let mut command = if utility == "coreutils" { gen_coreutils_app(util_map) } else { util_map.get(utility).unwrap().1() }; - let shell: Shell = shell.parse().unwrap(); let bin_name = std::env::var("PROG_PREFIX").unwrap_or_default() + utility; clap_complete::generate(shell, &mut command, bin_name, &mut io::stdout()); diff --git a/src/uu/arch/Cargo.toml b/src/uu/arch/Cargo.toml index a7e08f9bc..f344144fe 100644 --- a/src/uu/arch/Cargo.toml +++ b/src/uu/arch/Cargo.toml @@ -15,7 +15,7 @@ edition = "2021" path = "src/arch.rs" [dependencies] -platform-info = "0.2" +platform-info = "1.0.0" clap = { version = "3.2", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } diff --git a/src/uu/base32/src/base_common.rs b/src/uu/base32/src/base_common.rs index d49f02bc8..b535260c5 100644 --- a/src/uu/base32/src/base_common.rs +++ b/src/uu/base32/src/base_common.rs @@ -12,7 +12,7 @@ use std::io::{stdout, Read, Write}; use uucore::display::Quotable; use uucore::encoding::{wrap_print, Data, Format}; use uucore::error::{FromIo, UResult, USimpleError, UUsageError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; use std::fs::File; use std::io::{BufReader, Stdin}; @@ -87,9 +87,7 @@ impl Config { pub fn parse_base_cmd_args(args: impl uucore::Args, about: &str, usage: &str) -> UResult { let command = base_app(about, usage); - let arg_list = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let arg_list = args.collect_lossy(); Config::from(&command.try_get_matches_from(arg_list)?) } diff --git a/src/uu/basename/src/basename.rs b/src/uu/basename/src/basename.rs index b52717287..af961f5fb 100644 --- a/src/uu/basename/src/basename.rs +++ b/src/uu/basename/src/basename.rs @@ -11,7 +11,7 @@ use clap::{crate_version, Arg, Command}; use std::path::{is_separator, PathBuf}; use uucore::display::Quotable; use uucore::error::{UResult, UUsageError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = r#"Print NAME with any leading directory components removed If specified, also remove a trailing SUFFIX"#; @@ -28,9 +28,7 @@ pub mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); // Since options have to go before names, // if the first argument is not an option, then there is no option, diff --git a/src/uu/basenc/src/basenc.rs b/src/uu/basenc/src/basenc.rs index 1ecacf936..d884c04e3 100644 --- a/src/uu/basenc/src/basenc.rs +++ b/src/uu/basenc/src/basenc.rs @@ -14,7 +14,6 @@ use uu_base32::base_common::{self, Config, BASE_CMD_PARSE_ERROR}; use uucore::{ encoding::Format, error::{UResult, UUsageError}, - InvalidEncodingHandling, }; use std::io::{stdin, Read}; @@ -52,10 +51,7 @@ pub fn uu_app<'a>() -> Command<'a> { fn parse_cmd_args(args: impl uucore::Args) -> UResult<(Config, Format)> { let matches = uu_app() - .try_get_matches_from( - args.collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(), - ) + .try_get_matches_from(args.collect_lossy()) .with_exit_code(1)?; let format = ENCODINGS .iter() diff --git a/src/uu/cat/Cargo.toml b/src/uu/cat/Cargo.toml index 4d4793b94..36265d380 100644 --- a/src/uu/cat/Cargo.toml +++ b/src/uu/cat/Cargo.toml @@ -22,7 +22,7 @@ uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=[ [target.'cfg(unix)'.dependencies] unix_socket = "0.5.0" -nix = { version = "0.24.2", default-features = false } +nix = { version = "0.25", default-features = false } [[bin]] name = "cat" diff --git a/src/uu/cat/src/cat.rs b/src/uu/cat/src/cat.rs index 62afc0aa3..602a340cb 100644 --- a/src/uu/cat/src/cat.rs +++ b/src/uu/cat/src/cat.rs @@ -36,7 +36,7 @@ use std::net::Shutdown; use std::os::unix::fs::FileTypeExt; #[cfg(unix)] use unix_socket::UnixStream; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static NAME: &str = "cat"; static USAGE: &str = "{} [OPTION]... [FILE]..."; @@ -184,9 +184,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().try_get_matches_from(args)?; diff --git a/src/uu/chcon/src/chcon.rs b/src/uu/chcon/src/chcon.rs index ee6f6e598..fbfdbc31f 100644 --- a/src/uu/chcon/src/chcon.rs +++ b/src/uu/chcon/src/chcon.rs @@ -357,9 +357,9 @@ fn parse_command_line(config: clap::Command, args: impl uucore::Args) -> Result< // By default, do not preserve root. let preserve_root = matches.contains_id(options::preserve_root::PRESERVE_ROOT); - let mut files = matches.values_of_os("FILE").unwrap_or_default(); + let mut files = matches.get_many::("FILE").unwrap_or_default(); - let mode = if let Some(path) = matches.value_of_os(options::REFERENCE) { + let mode = if let Some(path) = matches.get_one::(options::REFERENCE) { CommandLineMode::ReferenceBased { reference: PathBuf::from(path), } @@ -369,10 +369,10 @@ fn parse_command_line(config: clap::Command, args: impl uucore::Args) -> Result< || matches.contains_id(options::RANGE) { CommandLineMode::Custom { - user: matches.value_of_os(options::USER).map(Into::into), - role: matches.value_of_os(options::ROLE).map(Into::into), - the_type: matches.value_of_os(options::TYPE).map(Into::into), - range: matches.value_of_os(options::RANGE).map(Into::into), + user: matches.get_one::(options::USER).map(Into::into), + role: matches.get_one::(options::ROLE).map(Into::into), + the_type: matches.get_one::(options::TYPE).map(Into::into), + range: matches.get_one::(options::RANGE).map(Into::into), } } else if let Some(context) = files.next() { CommandLineMode::ContextBased { diff --git a/src/uu/chmod/Cargo.toml b/src/uu/chmod/Cargo.toml index 185150678..688b99af0 100644 --- a/src/uu/chmod/Cargo.toml +++ b/src/uu/chmod/Cargo.toml @@ -16,7 +16,7 @@ path = "src/chmod.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" +libc = "0.2.132" uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["fs", "mode"] } [[bin]] diff --git a/src/uu/chmod/src/chmod.rs b/src/uu/chmod/src/chmod.rs index d1a051a1c..181517fea 100644 --- a/src/uu/chmod/src/chmod.rs +++ b/src/uu/chmod/src/chmod.rs @@ -18,7 +18,7 @@ use uucore::fs::is_symlink; use uucore::libc::mode_t; #[cfg(not(windows))] use uucore::mode; -use uucore::{format_usage, show_error, InvalidEncodingHandling}; +use uucore::{format_usage, show_error}; static ABOUT: &str = "Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of RFILE."; @@ -46,9 +46,7 @@ fn get_long_usage() -> String { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let mut args = args.collect_lossy(); // Before we can parse 'args' with clap (and previously getopts), // a possible MODE prefix '-' needs to be removed (e.g. "chmod -x FILE"). diff --git a/src/uu/chroot/src/chroot.rs b/src/uu/chroot/src/chroot.rs index 6f575f4b1..1e5f62d5f 100644 --- a/src/uu/chroot/src/chroot.rs +++ b/src/uu/chroot/src/chroot.rs @@ -17,7 +17,7 @@ use std::path::Path; use std::process; use uucore::error::{set_exit_code, UResult}; use uucore::libc::{self, chroot, setgid, setgroups, setuid}; -use uucore::{entries, format_usage, InvalidEncodingHandling}; +use uucore::{entries, format_usage}; static ABOUT: &str = "Run COMMAND with root directory set to NEWROOT."; static USAGE: &str = "{} [OPTION]... NEWROOT [COMMAND [ARG]...]"; @@ -33,9 +33,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/cksum/src/cksum.rs b/src/uu/cksum/src/cksum.rs index fd9796769..2d8c930fe 100644 --- a/src/uu/cksum/src/cksum.rs +++ b/src/uu/cksum/src/cksum.rs @@ -12,7 +12,6 @@ use std::io::{self, stdin, BufReader, Read}; use std::path::Path; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; -use uucore::InvalidEncodingHandling; use uucore::{format_usage, show}; // NOTE: CRC_TABLE_LEN *must* be <= 256 as we cast 0..CRC_TABLE_LEN to u8 @@ -114,9 +113,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/comm/src/comm.rs b/src/uu/comm/src/comm.rs index d553a87ca..5e08613cd 100644 --- a/src/uu/comm/src/comm.rs +++ b/src/uu/comm/src/comm.rs @@ -13,7 +13,7 @@ use std::io::{self, stdin, BufRead, BufReader, Stdin}; use std::path::Path; use uucore::error::FromIo; use uucore::error::UResult; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; use clap::{crate_version, Arg, ArgMatches, Command}; @@ -132,9 +132,7 @@ fn open_file(name: &str) -> io::Result { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); let filename1 = matches.value_of(options::FILE_1).unwrap(); diff --git a/src/uu/cp/Cargo.toml b/src/uu/cp/Cargo.toml index bc5465c3d..c50d37bcf 100644 --- a/src/uu/cp/Cargo.toml +++ b/src/uu/cp/Cargo.toml @@ -21,7 +21,7 @@ path = "src/cp.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } filetime = "0.2" -libc = "0.2.126" +libc = "0.2.132" quick-error = "2.0.1" selinux = { version="0.2", optional=true } uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["entries", "fs", "perms", "mode"] } diff --git a/src/uu/cp/src/cp.rs b/src/uu/cp/src/cp.rs index a81d52ed8..6df240382 100644 --- a/src/uu/cp/src/cp.rs +++ b/src/uu/cp/src/cp.rs @@ -46,7 +46,7 @@ use std::path::{Path, PathBuf, StripPrefixError}; use std::str::FromStr; use std::string::ToString; use uucore::backup_control::{self, BackupMode}; -use uucore::error::{set_exit_code, ExitCode, UClapError, UError, UResult}; +use uucore::error::{set_exit_code, UClapError, UError, UResult, UUsageError}; use uucore::fs::{canonicalize, is_symlink, MissingHandling, ResolveMode}; use walkdir::WalkDir; @@ -498,8 +498,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let options = Options::from_matches(&matches)?; if options.overwrite == OverwriteMode::NoClobber && options.backup != BackupMode::NoBackup { - show_usage_error!("options --backup and --no-clobber are mutually exclusive"); - return Err(ExitCode(EXIT_ERR).into()); + return Err(UUsageError::new( + EXIT_ERR, + "options --backup and --no-clobber are mutually exclusive", + )); } let paths: Vec = matches diff --git a/src/uu/csplit/src/csplit.rs b/src/uu/csplit/src/csplit.rs index fc60ec1ca..143d2d2e8 100644 --- a/src/uu/csplit/src/csplit.rs +++ b/src/uu/csplit/src/csplit.rs @@ -16,7 +16,7 @@ use clap::{crate_version, Arg, ArgMatches, Command}; use regex::Regex; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; mod csplit_error; mod patterns; @@ -713,9 +713,7 @@ mod tests { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/cut/src/cut.rs b/src/uu/cut/src/cut.rs index 2d76648d0..a1883adc5 100644 --- a/src/uu/cut/src/cut.rs +++ b/src/uu/cut/src/cut.rs @@ -19,8 +19,8 @@ use uucore::display::Quotable; use uucore::error::{FromIo, UResult, USimpleError}; use self::searcher::Searcher; +use uucore::format_usage; use uucore::ranges::Range; -use uucore::{format_usage, InvalidEncodingHandling}; mod searcher; @@ -398,9 +398,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let delimiter_is_equal = args.contains(&"-d=".to_string()); // special case let matches = uu_app().get_matches_from(args); diff --git a/src/uu/dd/src/dd.rs b/src/uu/dd/src/dd.rs index 94da4b7d3..57a661b94 100644 --- a/src/uu/dd/src/dd.rs +++ b/src/uu/dd/src/dd.rs @@ -37,7 +37,7 @@ use clap::{crate_version, Arg, ArgMatches, Command}; use gcd::Gcd; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; -use uucore::{show_error, InvalidEncodingHandling}; +use uucore::show_error; const ABOUT: &str = "copy, and optionally convert, a file system resource"; const BUF_INIT_BYTE: u8 = 0xDD; @@ -146,7 +146,7 @@ impl Input { } opts.open(fname) - .map_err_context(|| "failed to open input file".to_string())? + .map_err_context(|| format!("failed to open {}", fname.quote()))? }; // The --skip and --iseek flags are additive. On a file, they seek. @@ -706,8 +706,7 @@ fn append_dashes_if_not_present(mut acc: Vec, mut s: String) -> Vec UResult<()> { let dashed_args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any() + .collect_ignore() .into_iter() .fold(Vec::new(), append_dashes_if_not_present); diff --git a/src/uu/dd/src/parseargs.rs b/src/uu/dd/src/parseargs.rs index 96ac55d75..701134ee1 100644 --- a/src/uu/dd/src/parseargs.rs +++ b/src/uu/dd/src/parseargs.rs @@ -35,6 +35,7 @@ pub enum ParseError { IbsOutOfRange, ObsOutOfRange, CbsOutOfRange, + InvalidNumber(String), } impl ParseError { @@ -56,6 +57,7 @@ impl ParseError { Self::IbsOutOfRange => Self::IbsOutOfRange, Self::ObsOutOfRange => Self::ObsOutOfRange, Self::CbsOutOfRange => Self::CbsOutOfRange, + Self::InvalidNumber(_) => Self::InvalidNumber(s), } } } @@ -79,7 +81,12 @@ impl std::fmt::Display for ParseError { write!(f, "Only one ov conv=excl or conv=nocreat may be specified") } Self::FlagNoMatch(arg) => { - write!(f, "Unrecognized iflag=FLAG or oflag=FLAG -> {}", arg) + // Additional message about 'dd --help' is displayed only in this situation. + write!( + f, + "invalid input flag: ‘{}’\nTry 'dd --help' for more information.", + arg + ) } Self::ConvFlagNoMatch(arg) => { write!(f, "Unrecognized conv=CONV -> {}", arg) @@ -115,6 +122,9 @@ impl std::fmt::Display for ParseError { Self::Unimplemented(arg) => { write!(f, "feature not implemented on this system -> {}", arg) } + Self::InvalidNumber(arg) => { + write!(f, "invalid number: ‘{}’", arg) + } } } } @@ -389,7 +399,7 @@ fn parse_bytes_no_x(s: &str) -> Result { (None, None, None) => match uucore::parse_size::parse_size(s) { Ok(n) => (n, 1), Err(ParseSizeError::InvalidSuffix(s)) | Err(ParseSizeError::ParseFailure(s)) => { - return Err(ParseError::MultiplierStringParseFailure(s)) + return Err(ParseError::InvalidNumber(s)) } Err(ParseSizeError::SizeTooBig(s)) => { return Err(ParseError::MultiplierStringOverflow(s)) diff --git a/src/uu/dir/src/dir.rs b/src/uu/dir/src/dir.rs index 3e2d1d380..22932d9ae 100644 --- a/src/uu/dir/src/dir.rs +++ b/src/uu/dir/src/dir.rs @@ -6,6 +6,7 @@ // * that was distributed with this source code. use clap::Command; +use std::ffi::OsString; use std::path::Path; use uu_ls::{options, Config, Format}; use uucore::error::UResult; @@ -13,7 +14,7 @@ use uucore::quoting_style::{Quotes, QuotingStyle}; #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let command = uu_ls::uu_app(); + let command = uu_app(); let matches = command.get_matches_from(args); @@ -55,7 +56,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } let locs = matches - .values_of_os(options::PATHS) + .get_many::(options::PATHS) .map(|v| v.map(Path::new).collect()) .unwrap_or_else(|| vec![Path::new(".")]); @@ -64,7 +65,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // To avoid code duplication, we reuse ls uu_app function which has the same // arguments. However, coreutils won't compile if one of the utils is missing -// an uu_app function, so we need this dummy one. +// an uu_app function, so we return the `ls` app. pub fn uu_app<'a>() -> Command<'a> { - Command::new(uucore::util_name()) + uu_ls::uu_app() } diff --git a/src/uu/dircolors/src/dircolors.rs b/src/uu/dircolors/src/dircolors.rs index 5a014eafe..3224f07e1 100644 --- a/src/uu/dircolors/src/dircolors.rs +++ b/src/uu/dircolors/src/dircolors.rs @@ -65,9 +65,7 @@ pub fn guess_syntax() -> OutputFmt { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(&args); @@ -278,7 +276,7 @@ enum ParseState { } use std::collections::HashMap; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; fn parse(lines: T, fmt: &OutputFmt, fp: &str) -> Result where diff --git a/src/uu/dirname/src/dirname.rs b/src/uu/dirname/src/dirname.rs index 5b7fa3c56..ed3deb7aa 100644 --- a/src/uu/dirname/src/dirname.rs +++ b/src/uu/dirname/src/dirname.rs @@ -9,7 +9,7 @@ use clap::{crate_version, Arg, Command}; use std::path::Path; use uucore::display::print_verbatim; use uucore::error::{UResult, UUsageError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = "strip last component from file name"; const USAGE: &str = "{} [OPTION] NAME..."; @@ -28,9 +28,7 @@ fn get_long_usage() -> String { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let after_help = get_long_usage(); diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index 22d229f83..41a532ffd 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -39,7 +39,6 @@ use uucore::error::{UError, UResult}; use uucore::format_usage; use uucore::parse_glob; use uucore::parse_size::{parse_size, ParseSizeError}; -use uucore::InvalidEncodingHandling; #[cfg(windows)] use winapi::shared::minwindef::{DWORD, LPVOID}; #[cfg(windows)] @@ -516,9 +515,7 @@ fn build_exclude_patterns(matches: &ArgMatches) -> UResult> { #[uucore::main] #[allow(clippy::cognitive_complexity)] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/echo/src/echo.rs b/src/uu/echo/src/echo.rs index f02f938f2..6f4d2e674 100644 --- a/src/uu/echo/src/echo.rs +++ b/src/uu/echo/src/echo.rs @@ -11,7 +11,7 @@ use std::io::{self, Write}; use std::iter::Peekable; use std::str::Chars; use uucore::error::{FromIo, UResult}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; const NAME: &str = "echo"; const ABOUT: &str = "display a line of text"; @@ -110,9 +110,7 @@ fn print_escaped(input: &str, mut output: impl Write) -> io::Result { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); let no_newline = matches.contains_id(options::NO_NEWLINE); diff --git a/src/uu/expand/src/expand.rs b/src/uu/expand/src/expand.rs index 06d903679..bbbe2de71 100644 --- a/src/uu/expand/src/expand.rs +++ b/src/uu/expand/src/expand.rs @@ -22,7 +22,7 @@ use std::str::from_utf8; use unicode_width::UnicodeWidthChar; use uucore::display::Quotable; use uucore::error::{FromIo, UError, UResult}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = "Convert tabs in each FILE to spaces, writing to standard output. With no FILE, or when FILE is -, read standard input."; @@ -269,9 +269,7 @@ fn expand_shortcuts(args: &[String]) -> Vec { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(expand_shortcuts(&args)); diff --git a/src/uu/expr/src/expr.rs b/src/uu/expr/src/expr.rs index 104398241..9b4ec0b19 100644 --- a/src/uu/expr/src/expr.rs +++ b/src/uu/expr/src/expr.rs @@ -7,7 +7,6 @@ use clap::{crate_version, Arg, Command}; use uucore::error::{UResult, USimpleError}; -use uucore::InvalidEncodingHandling; mod syntax_tree; mod tokens; @@ -33,9 +32,7 @@ pub fn uu_app<'a>() -> Command<'a> { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); // For expr utility we do not want getopts. // The following usage should work without escaping hyphens: `expr -15 = 1 + 2 \* \( 3 - -4 \)` diff --git a/src/uu/fold/src/fold.rs b/src/uu/fold/src/fold.rs index 6484a56f9..6587d5eae 100644 --- a/src/uu/fold/src/fold.rs +++ b/src/uu/fold/src/fold.rs @@ -13,7 +13,7 @@ use std::io::{stdin, BufRead, BufReader, Read}; use std::path::Path; use uucore::display::Quotable; use uucore::error::{FromIo, UResult, USimpleError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; const TAB_WIDTH: usize = 8; @@ -31,9 +31,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let (args, obs_width) = handle_obsolete(&args[..]); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/hashsum/src/hashsum.rs b/src/uu/hashsum/src/hashsum.rs index 3d8ba8d41..a2a33561f 100644 --- a/src/uu/hashsum/src/hashsum.rs +++ b/src/uu/hashsum/src/hashsum.rs @@ -320,8 +320,8 @@ pub fn uumain(mut args: impl uucore::Args) -> UResult<()> { warn, }; - match matches.values_of_os("FILE") { - Some(files) => hashsum(opts, files), + match matches.get_many::("FILE") { + Some(files) => hashsum(opts, files.map(|f| f.as_os_str())), None => hashsum(opts, iter::once(OsStr::new("-"))), } } diff --git a/src/uu/hostid/Cargo.toml b/src/uu/hostid/Cargo.toml index bb8415312..62744d8b0 100644 --- a/src/uu/hostid/Cargo.toml +++ b/src/uu/hostid/Cargo.toml @@ -16,7 +16,7 @@ path = "src/hostid.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" +libc = "0.2.132" uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } [[bin]] diff --git a/src/uu/hostname/Cargo.toml b/src/uu/hostname/Cargo.toml index 6d866c3ba..8baebc3a4 100644 --- a/src/uu/hostname/Cargo.toml +++ b/src/uu/hostname/Cargo.toml @@ -18,6 +18,8 @@ path = "src/hostname.rs" clap = { version = "3.2", features = ["wrap_help", "cargo"] } hostname = { version = "0.3", features = ["set"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["wide"] } + +[target.'cfg(target_os = "windows")'.dependencies] winapi = { version="0.3", features=["sysinfoapi", "winsock2"] } [[bin]] diff --git a/src/uu/hostname/src/hostname.rs b/src/uu/hostname/src/hostname.rs index ad8e0479f..f6f31156a 100644 --- a/src/uu/hostname/src/hostname.rs +++ b/src/uu/hostname/src/hostname.rs @@ -7,9 +7,9 @@ // spell-checker:ignore (ToDO) MAKEWORD addrs hashset -use std::collections::hash_set::HashSet; use std::net::ToSocketAddrs; use std::str; +use std::{collections::hash_set::HashSet, ffi::OsString}; use clap::{crate_version, Arg, ArgMatches, Command}; @@ -65,7 +65,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { #[cfg(windows)] let _handle = wsa::start().map_err_context(|| "failed to start Winsock".to_owned())?; - match matches.value_of_os(OPT_HOST) { + match matches.get_one::(OPT_HOST) { None => display_hostname(&matches), Some(host) => hostname::set(host).map_err_context(|| "failed to set hostname".to_owned()), } diff --git a/src/uu/join/src/join.rs b/src/uu/join/src/join.rs index a987a1744..8a7ef5a8e 100644 --- a/src/uu/join/src/join.rs +++ b/src/uu/join/src/join.rs @@ -15,6 +15,7 @@ use memchr::{memchr3_iter, memchr_iter}; use std::cmp::Ordering; use std::convert::From; use std::error::Error; +use std::ffi::OsString; use std::fmt::Display; use std::fs::File; use std::io::{stdin, stdout, BufRead, BufReader, BufWriter, Split, Stdin, Write}; @@ -627,7 +628,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { settings.key1 = get_field_number(keys, key1)?; settings.key2 = get_field_number(keys, key2)?; - if let Some(value_os) = matches.value_of_os("t") { + if let Some(value_os) = matches.get_one::("t") { #[cfg(unix)] let value = value_os.as_bytes(); #[cfg(not(unix))] diff --git a/src/uu/kill/Cargo.toml b/src/uu/kill/Cargo.toml index 3632f2cf7..8a5713a49 100644 --- a/src/uu/kill/Cargo.toml +++ b/src/uu/kill/Cargo.toml @@ -16,7 +16,7 @@ path = "src/kill.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -nix = { version = "0.24.2", features = ["signal"] } +nix = { version = "0.25", features = ["signal"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["signals"] } [[bin]] diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 3c8f62d59..abb72799d 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -16,8 +16,8 @@ use nix::unistd::Pid; use std::io::Error; use uucore::display::Quotable; use uucore::error::{FromIo, UError, UResult, USimpleError}; +use uucore::format_usage; use uucore::signals::{signal_by_name_or_value, ALL_SIGNALS}; -use uucore::{format_usage, InvalidEncodingHandling}; static ABOUT: &str = "Send signal to processes or list information about signals."; const USAGE: &str = "{} [OPTIONS]... PID..."; @@ -38,9 +38,7 @@ pub enum Mode { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let mut args = args.collect_ignore(); let obs_signal = handle_obsolete(&mut args); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/link/src/link.rs b/src/uu/link/src/link.rs index 1fc0c49ce..fe83a55f6 100644 --- a/src/uu/link/src/link.rs +++ b/src/uu/link/src/link.rs @@ -5,6 +5,7 @@ // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. use clap::{crate_version, Arg, Command}; +use std::ffi::OsString; use std::fs::hard_link; use std::path::Path; use uucore::display::Quotable; @@ -23,7 +24,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let matches = uu_app().get_matches_from(args); let files: Vec<_> = matches - .values_of_os(options::FILES) + .get_many::(options::FILES) .unwrap_or_default() .collect(); let old = Path::new(files[0]); diff --git a/src/uu/logname/Cargo.toml b/src/uu/logname/Cargo.toml index 1e9545399..32c017444 100644 --- a/src/uu/logname/Cargo.toml +++ b/src/uu/logname/Cargo.toml @@ -15,7 +15,7 @@ edition = "2021" path = "src/logname.rs" [dependencies] -libc = "0.2.126" +libc = "0.2.132" clap = { version = "3.2", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } diff --git a/src/uu/logname/src/logname.rs b/src/uu/logname/src/logname.rs index 29a74a373..112923296 100644 --- a/src/uu/logname/src/logname.rs +++ b/src/uu/logname/src/logname.rs @@ -15,7 +15,6 @@ extern crate uucore; use clap::{crate_version, Command}; use std::ffi::CStr; use uucore::error::UResult; -use uucore::InvalidEncodingHandling; extern "C" { // POSIX requires using getlogin (or equivalent code) @@ -37,9 +36,7 @@ static ABOUT: &str = "Print user's login name"; #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let _ = uu_app().get_matches_from(args); diff --git a/src/uu/ls/Cargo.toml b/src/uu/ls/Cargo.toml index 98cf83547..723b284c0 100644 --- a/src/uu/ls/Cargo.toml +++ b/src/uu/ls/Cargo.toml @@ -22,9 +22,9 @@ number_prefix = "0.4" term_grid = "0.1.5" termsize = "0.1.6" glob = "0.3.0" -lscolors = { version = "0.11.0", features = ["ansi_term"] } +lscolors = { version = "0.12.0", features = ["ansi_term"] } uucore = { version = ">=0.0.8", package = "uucore", path = "../../uucore", features = ["entries", "fs"] } -once_cell = "1.13.0" +once_cell = "1.13.1" atty = "0.2" selinux = { version="0.2", optional = true } diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 9a3f6ac89..dada67f21 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -898,7 +898,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let config = Config::from(&matches)?; let locs = matches - .values_of_os(options::PATHS) + .get_many::(options::PATHS) .map(|v| v.map(Path::new).collect()) .unwrap_or_else(|| vec![Path::new(".")]); diff --git a/src/uu/mkdir/src/mkdir.rs b/src/uu/mkdir/src/mkdir.rs index 8a6d2e9dd..b66537b2f 100644 --- a/src/uu/mkdir/src/mkdir.rs +++ b/src/uu/mkdir/src/mkdir.rs @@ -10,15 +10,17 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, Arg, ArgMatches, Command, OsValues}; +use clap::parser::ValuesRef; +use clap::{crate_version, Arg, ArgMatches, Command}; +use std::ffi::OsString; use std::path::{Path, PathBuf}; #[cfg(not(windows))] use uucore::error::FromIo; use uucore::error::{UResult, USimpleError}; +use uucore::format_usage; #[cfg(not(windows))] use uucore::mode; use uucore::{display::Quotable, fs::dir_strip_dot_for_creation}; -use uucore::{format_usage, InvalidEncodingHandling}; static DEFAULT_PERM: u32 = 0o755; @@ -83,9 +85,7 @@ fn strip_minus_from_mode(args: &mut Vec) -> bool { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let mut args = args.collect_lossy(); // Before we can parse 'args' with clap (and previously getopts), // a possible MODE prefix '-' needs to be removed (e.g. "chmod -x FILE"). @@ -97,7 +97,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // " of each created directory to CTX"), let matches = uu_app().after_help(&after_help[..]).get_matches_from(args); - let dirs = matches.values_of_os(options::DIRS).unwrap_or_default(); + let dirs = matches + .get_many::(options::DIRS) + .unwrap_or_default(); let verbose = matches.contains_id(options::VERBOSE); let recursive = matches.contains_id(options::PARENTS); @@ -145,7 +147,7 @@ pub fn uu_app<'a>() -> Command<'a> { /** * Create the list of new directories */ -fn exec(dirs: OsValues, recursive: bool, mode: u32, verbose: bool) -> UResult<()> { +fn exec(dirs: ValuesRef, recursive: bool, mode: u32, verbose: bool) -> UResult<()> { for dir in dirs { // Special case to match GNU's behavior: // mkdir -p foo/. should work and just create foo/ diff --git a/src/uu/mkfifo/Cargo.toml b/src/uu/mkfifo/Cargo.toml index 022b104bd..4f7341aa4 100644 --- a/src/uu/mkfifo/Cargo.toml +++ b/src/uu/mkfifo/Cargo.toml @@ -16,7 +16,7 @@ path = "src/mkfifo.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" +libc = "0.2.132" uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } [[bin]] diff --git a/src/uu/mkfifo/src/mkfifo.rs b/src/uu/mkfifo/src/mkfifo.rs index 3530b5c9e..1c70f52c6 100644 --- a/src/uu/mkfifo/src/mkfifo.rs +++ b/src/uu/mkfifo/src/mkfifo.rs @@ -11,9 +11,9 @@ extern crate uucore; use clap::{crate_version, Arg, Command}; use libc::mkfifo; use std::ffi::CString; +use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; use uucore::format_usage; -use uucore::{display::Quotable, InvalidEncodingHandling}; static NAME: &str = "mkfifo"; static USAGE: &str = "{} [OPTION]... NAME..."; @@ -28,9 +28,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/mknod/Cargo.toml b/src/uu/mknod/Cargo.toml index c9bb5bbc0..1329d0b6a 100644 --- a/src/uu/mknod/Cargo.toml +++ b/src/uu/mknod/Cargo.toml @@ -17,7 +17,7 @@ path = "src/mknod.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "^0.2.126" +libc = "^0.2.132" uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["mode"] } [[bin]] diff --git a/src/uu/mknod/src/mknod.rs b/src/uu/mknod/src/mknod.rs index cda500f65..551d1e90d 100644 --- a/src/uu/mknod/src/mknod.rs +++ b/src/uu/mknod/src/mknod.rs @@ -15,7 +15,7 @@ use libc::{S_IFBLK, S_IFCHR, S_IFIFO, S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWOT use uucore::display::Quotable; use uucore::error::{set_exit_code, UResult, USimpleError, UUsageError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = "Create the special file NAME of the given TYPE."; static USAGE: &str = "{} [OPTION]... NAME TYPE [MAJOR MINOR]"; @@ -81,9 +81,7 @@ fn _mknod(file_name: &str, mode: mode_t, dev: dev_t) -> i32 { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); // Linux-specific options, not implemented // opts.optflag("Z", "", "set the SELinux security context to default type"); // opts.optopt("", "context", "like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX"); diff --git a/src/uu/mktemp/src/mktemp.rs b/src/uu/mktemp/src/mktemp.rs index 561281c72..1131e0f01 100644 --- a/src/uu/mktemp/src/mktemp.rs +++ b/src/uu/mktemp/src/mktemp.rs @@ -316,7 +316,7 @@ impl Params { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args.collect_str_lossy().accept_any(); + let args = args.collect_lossy(); let matches = uu_app().try_get_matches_from(&args)?; diff --git a/src/uu/more/Cargo.toml b/src/uu/more/Cargo.toml index 37afd24f1..160ae7acf 100644 --- a/src/uu/more/Cargo.toml +++ b/src/uu/more/Cargo.toml @@ -23,7 +23,7 @@ unicode-width = "0.1.7" unicode-segmentation = "1.9.0" [target.'cfg(all(unix, not(target_os = "fuchsia")))'.dependencies] -nix = { version = "0.24.2", default-features = false } +nix = { version = "0.25", default-features = false } [[bin]] name = "more" diff --git a/src/uu/more/src/more.rs b/src/uu/more/src/more.rs index d4be472c8..e701b15fc 100644 --- a/src/uu/more/src/more.rs +++ b/src/uu/more/src/more.rs @@ -18,6 +18,7 @@ use std::{ extern crate nix; use clap::{crate_version, Arg, Command}; +use crossterm::event::KeyEventKind; use crossterm::{ event::{self, Event, KeyCode, KeyEvent, KeyModifiers}, execute, queue, @@ -229,13 +230,21 @@ fn more(buff: &str, stdout: &mut Stdout, next_file: Option<&str>, silent: bool) let mut wrong_key = None; if event::poll(Duration::from_millis(10)).unwrap() { match event::read().unwrap() { + Event::Key(KeyEvent { + kind: KeyEventKind::Release, + .. + }) => continue, Event::Key(KeyEvent { code: KeyCode::Char('q'), modifiers: KeyModifiers::NONE, + kind: KeyEventKind::Press, + .. }) | Event::Key(KeyEvent { code: KeyCode::Char('c'), modifiers: KeyModifiers::CONTROL, + kind: KeyEventKind::Press, + .. }) => { reset_term(stdout); std::process::exit(0); @@ -243,10 +252,12 @@ fn more(buff: &str, stdout: &mut Stdout, next_file: Option<&str>, silent: bool) Event::Key(KeyEvent { code: KeyCode::Down, modifiers: KeyModifiers::NONE, + .. }) | Event::Key(KeyEvent { code: KeyCode::Char(' '), modifiers: KeyModifiers::NONE, + .. }) => { if pager.should_close() { return Ok(()); @@ -257,12 +268,14 @@ fn more(buff: &str, stdout: &mut Stdout, next_file: Option<&str>, silent: bool) Event::Key(KeyEvent { code: KeyCode::Up, modifiers: KeyModifiers::NONE, + .. }) => { pager.page_up(); } Event::Key(KeyEvent { code: KeyCode::Char('j'), modifiers: KeyModifiers::NONE, + .. }) => { if pager.should_close() { return Ok(()); @@ -273,6 +286,7 @@ fn more(buff: &str, stdout: &mut Stdout, next_file: Option<&str>, silent: bool) Event::Key(KeyEvent { code: KeyCode::Char('k'), modifiers: KeyModifiers::NONE, + .. }) => { pager.prev_line(); } diff --git a/src/uu/mv/src/mv.rs b/src/uu/mv/src/mv.rs index 8a681704f..1e76d090f 100644 --- a/src/uu/mv/src/mv.rs +++ b/src/uu/mv/src/mv.rs @@ -92,7 +92,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } let files: Vec = matches - .values_of_os(ARG_FILES) + .get_many::(ARG_FILES) .unwrap_or_default() .map(|v| v.to_os_string()) .collect(); @@ -115,7 +115,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { suffix: backup_suffix, update: matches.contains_id(OPT_UPDATE), target_dir: matches - .value_of_os(OPT_TARGET_DIRECTORY) + .get_one::(OPT_TARGET_DIRECTORY) .map(OsString::from), no_target_dir: matches.contains_id(OPT_NO_TARGET_DIRECTORY), verbose: matches.contains_id(OPT_VERBOSE), diff --git a/src/uu/nice/Cargo.toml b/src/uu/nice/Cargo.toml index b838ec2a2..30d5b5b13 100644 --- a/src/uu/nice/Cargo.toml +++ b/src/uu/nice/Cargo.toml @@ -16,8 +16,8 @@ path = "src/nice.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" -nix = { version = "0.24.2", default-features = false } +libc = "0.2.132" +nix = { version = "0.25", default-features = false } uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } [[bin]] diff --git a/src/uu/nl/src/nl.rs b/src/uu/nl/src/nl.rs index 7cea6f80f..7f36cb424 100644 --- a/src/uu/nl/src/nl.rs +++ b/src/uu/nl/src/nl.rs @@ -14,7 +14,7 @@ use std::io::{stdin, BufRead, BufReader, Read}; use std::iter::repeat; use std::path::Path; use uucore::error::{FromIo, UResult, USimpleError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; mod helper; @@ -84,9 +84,7 @@ pub mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/nohup/Cargo.toml b/src/uu/nohup/Cargo.toml index 18a319811..175df193f 100644 --- a/src/uu/nohup/Cargo.toml +++ b/src/uu/nohup/Cargo.toml @@ -16,7 +16,7 @@ path = "src/nohup.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" +libc = "0.2.132" atty = "0.2" uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["fs"] } diff --git a/src/uu/nohup/src/nohup.rs b/src/uu/nohup/src/nohup.rs index 600dff388..6b11ea920 100644 --- a/src/uu/nohup/src/nohup.rs +++ b/src/uu/nohup/src/nohup.rs @@ -22,7 +22,7 @@ use std::os::unix::prelude::*; use std::path::{Path, PathBuf}; use uucore::display::Quotable; use uucore::error::{set_exit_code, UError, UResult}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = "Run COMMAND ignoring hangup signals."; static LONG_HELP: &str = " @@ -86,9 +86,7 @@ impl Display for NohupError { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/nproc/Cargo.toml b/src/uu/nproc/Cargo.toml index d711df005..23122de60 100644 --- a/src/uu/nproc/Cargo.toml +++ b/src/uu/nproc/Cargo.toml @@ -15,7 +15,7 @@ edition = "2021" path = "src/nproc.rs" [dependencies] -libc = "0.2.126" +libc = "0.2.132" num_cpus = "1.10" clap = { version = "3.2", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore", features=["fs"] } diff --git a/src/uu/numfmt/src/numfmt.rs b/src/uu/numfmt/src/numfmt.rs index 54ea17a63..d250aafef 100644 --- a/src/uu/numfmt/src/numfmt.rs +++ b/src/uu/numfmt/src/numfmt.rs @@ -14,6 +14,7 @@ use std::io::{BufRead, Write}; use units::{IEC_BASES, SI_BASES}; use uucore::display::Quotable; use uucore::error::UResult; +use uucore::format_usage; use uucore::ranges::Range; use uucore::{format_usage, help_section, help_usage, InvalidEncodingHandling}; @@ -227,9 +228,7 @@ fn concat_format_arg_and_value(args: &[String]) -> Vec { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(concat_format_arg_and_value(&args)); diff --git a/src/uu/od/src/od.rs b/src/uu/od/src/od.rs index bdbe78fc7..81068f0b7 100644 --- a/src/uu/od/src/od.rs +++ b/src/uu/od/src/od.rs @@ -48,7 +48,6 @@ use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; use uucore::format_usage; use uucore::parse_size::ParseSizeError; -use uucore::InvalidEncodingHandling; const PEEK_BUFFER_SIZE: usize = 4; // utf-8 can be 4 bytes static ABOUT: &str = "dump files in octal and other formats"; @@ -256,9 +255,7 @@ impl OdOptions { /// opens the input and calls `odfunc` to process the input. #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let clap_opts = uu_app(); diff --git a/src/uu/pathchk/Cargo.toml b/src/uu/pathchk/Cargo.toml index ec09b0f25..fba51708c 100644 --- a/src/uu/pathchk/Cargo.toml +++ b/src/uu/pathchk/Cargo.toml @@ -16,7 +16,7 @@ path = "src/pathchk.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } -libc = "0.2.126" +libc = "0.2.132" uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } [[bin]] diff --git a/src/uu/pathchk/src/pathchk.rs b/src/uu/pathchk/src/pathchk.rs index 53689e4ff..fb4d44494 100644 --- a/src/uu/pathchk/src/pathchk.rs +++ b/src/uu/pathchk/src/pathchk.rs @@ -13,7 +13,7 @@ use std::fs; use std::io::{ErrorKind, Write}; use uucore::display::Quotable; use uucore::error::{set_exit_code, UResult, UUsageError}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; // operating mode enum Mode { @@ -39,9 +39,7 @@ const POSIX_NAME_MAX: usize = 14; #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/pinky/src/pinky.rs b/src/uu/pinky/src/pinky.rs index 6235566b1..039dd0a5e 100644 --- a/src/uu/pinky/src/pinky.rs +++ b/src/uu/pinky/src/pinky.rs @@ -20,7 +20,7 @@ use std::os::unix::fs::MetadataExt; use clap::{crate_version, Arg, Command}; use std::path::PathBuf; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static ABOUT: &str = "lightweight finger"; const USAGE: &str = "{} [OPTION]... [USER]..."; @@ -49,9 +49,7 @@ fn get_long_usage() -> String { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let after_help = get_long_usage(); diff --git a/src/uu/pr/src/pr.rs b/src/uu/pr/src/pr.rs index e062b6c7f..a27804fa6 100644 --- a/src/uu/pr/src/pr.rs +++ b/src/uu/pr/src/pr.rs @@ -378,9 +378,7 @@ pub fn uu_app<'a>() -> Command<'a> { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(uucore::InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let opt_args = recreate_arguments(&args); diff --git a/src/uu/printf/src/printf.rs b/src/uu/printf/src/printf.rs index b0c3e0b50..e95e10cc8 100644 --- a/src/uu/printf/src/printf.rs +++ b/src/uu/printf/src/printf.rs @@ -4,7 +4,6 @@ use clap::{crate_version, Arg, Command}; use uucore::error::{UResult, UUsageError}; -use uucore::InvalidEncodingHandling; use uucore::{format_usage, memo}; const VERSION: &str = "version"; @@ -271,9 +270,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); let matches = uu_app().get_matches_from(args); let format_string = matches diff --git a/src/uu/ptx/src/ptx.rs b/src/uu/ptx/src/ptx.rs index cb593c356..fc5820065 100644 --- a/src/uu/ptx/src/ptx.rs +++ b/src/uu/ptx/src/ptx.rs @@ -19,7 +19,7 @@ use std::io::{stdin, stdout, BufRead, BufReader, BufWriter, Read, Write}; use std::num::ParseIntError; use uucore::display::Quotable; use uucore::error::{FromIo, UError, UResult}; -use uucore::{format_usage, InvalidEncodingHandling}; +use uucore::format_usage; static NAME: &str = "ptx"; const USAGE: &str = "\ @@ -722,9 +722,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::Ignore) - .accept_any(); + let args = args.collect_ignore(); // let mut opts = Options::new(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/relpath/src/relpath.rs b/src/uu/relpath/src/relpath.rs index 1fd0f0680..0e6051adb 100644 --- a/src/uu/relpath/src/relpath.rs +++ b/src/uu/relpath/src/relpath.rs @@ -12,8 +12,8 @@ use std::env; use std::path::{Path, PathBuf}; use uucore::display::println_verbatim; use uucore::error::{FromIo, UResult}; +use uucore::format_usage; use uucore::fs::{canonicalize, MissingHandling, ResolveMode}; -use uucore::{format_usage, InvalidEncodingHandling}; static ABOUT: &str = "Convert TO destination to the relative path from the FROM dir. If FROM path is omitted, current working dir will be used."; @@ -27,9 +27,7 @@ mod options { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args = args - .collect_str(InvalidEncodingHandling::ConvertLossy) - .accept_any(); + let args = args.collect_lossy(); let matches = uu_app().get_matches_from(args); diff --git a/src/uu/rmdir/Cargo.toml b/src/uu/rmdir/Cargo.toml index fdc3ba6a1..dd2d3ad6e 100644 --- a/src/uu/rmdir/Cargo.toml +++ b/src/uu/rmdir/Cargo.toml @@ -17,7 +17,7 @@ path = "src/rmdir.rs" [dependencies] clap = { version = "3.2", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.11", package="uucore", path="../../uucore" } -libc = "0.2.126" +libc = "0.2.132" [[bin]] name = "rmdir" diff --git a/src/uu/rmdir/src/rmdir.rs b/src/uu/rmdir/src/rmdir.rs index e4ff74ddf..76c439d96 100644 --- a/src/uu/rmdir/src/rmdir.rs +++ b/src/uu/rmdir/src/rmdir.rs @@ -11,6 +11,7 @@ extern crate uucore; use clap::{crate_version, Arg, Command}; +use std::ffi::OsString; use std::fs::{read_dir, remove_dir}; use std::io; use std::path::Path; @@ -40,7 +41,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { }; for path in matches - .values_of_os(ARG_DIRS) + .get_many::(ARG_DIRS) .unwrap_or_default() .map(Path::new) { diff --git a/src/uu/runcon/src/runcon.rs b/src/uu/runcon/src/runcon.rs index 31858d3f7..4de200d03 100644 --- a/src/uu/runcon/src/runcon.rs +++ b/src/uu/runcon/src/runcon.rs @@ -212,7 +212,7 @@ fn parse_command_line(config: Command, args: impl uucore::Args) -> Result