From 043d0cf1e605b17e12f70a5411892a144cb77454 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Sat, 28 Feb 2026 19:33:45 -0400 Subject: [PATCH 1/3] add coreutils-builtins --- Cargo.lock | 2413 +++++++++++++++++++++++++-- Cargo.toml | 1 + brush-coreutils-builtins/Cargo.toml | 274 +++ brush-coreutils-builtins/src/lib.rs | 420 +++++ brush-shell/Cargo.toml | 2 + brush-shell/src/entry.rs | 12 + 6 files changed, 2995 insertions(+), 127 deletions(-) create mode 100644 brush-coreutils-builtins/Cargo.toml create mode 100644 brush-coreutils-builtins/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 86ee3ce30..8066f40bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,6 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -68,6 +69,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "ansi-width" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219e3ce6f2611d83b51ec2098a12702112c29e57203a6b0a0929b2cddb486608" +dependencies = [ + "unicode-width 0.1.14", +] + [[package]] name = "anstream" version = "0.6.21" @@ -142,6 +152,12 @@ dependencies = [ "triomphe", ] +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + [[package]] name = "arrayvec" version = "0.7.6" @@ -230,6 +246,16 @@ dependencies = [ "backtrace", ] +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "bigdecimal" version = "0.4.10" @@ -243,6 +269,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "binary-heap-plus" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296" +dependencies = [ + "compare", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -273,6 +308,43 @@ dependencies = [ "serde_core", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.2.17", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -282,6 +354,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + [[package]] name = "bon" version = "3.9.0" @@ -333,10 +414,10 @@ dependencies = [ "rlimit", "strum 0.27.2", "strum_macros 0.27.2", - "thiserror", + "thiserror 2.0.18", "tokio", "tracing", - "uucore", + "uucore 0.6.0", ] [[package]] @@ -370,7 +451,7 @@ dependencies = [ "strum 0.27.2", "strum_macros 0.27.2", "terminfo", - "thiserror", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -378,6 +459,95 @@ dependencies = [ "whoami", ] +[[package]] +name = "brush-coreutils-builtins" +version = "0.1.0" +dependencies = [ + "brush-core", + "uu_arch", + "uu_b2sum", + "uu_base32", + "uu_base64", + "uu_basename", + "uu_basenc", + "uu_cat", + "uu_cksum", + "uu_comm", + "uu_cp", + "uu_csplit", + "uu_cut", + "uu_date", + "uu_dd", + "uu_df", + "uu_dir", + "uu_dircolors", + "uu_dirname", + "uu_du", + "uu_echo", + "uu_env", + "uu_expand", + "uu_expr", + "uu_factor", + "uu_false", + "uu_fmt", + "uu_fold", + "uu_head", + "uu_hostname", + "uu_join", + "uu_link", + "uu_ln", + "uu_ls", + "uu_md5sum", + "uu_mkdir", + "uu_mktemp", + "uu_more", + "uu_mv", + "uu_nl", + "uu_nproc", + "uu_numfmt", + "uu_od", + "uu_paste", + "uu_pr", + "uu_printenv", + "uu_printf", + "uu_ptx", + "uu_pwd", + "uu_readlink", + "uu_realpath", + "uu_rm", + "uu_rmdir", + "uu_seq", + "uu_sha1sum", + "uu_sha224sum", + "uu_sha256sum", + "uu_sha384sum", + "uu_sha512sum", + "uu_shred", + "uu_shuf", + "uu_sleep", + "uu_sort", + "uu_split", + "uu_sum", + "uu_sync", + "uu_tac", + "uu_tail", + "uu_tee", + "uu_test", + "uu_touch", + "uu_tr", + "uu_true", + "uu_truncate", + "uu_tsort", + "uu_uname", + "uu_unexpand", + "uu_uniq", + "uu_unlink", + "uu_vdir", + "uu_wc", + "uu_whoami", + "uu_yes", +] + [[package]] name = "brush-experimental-builtins" version = "0.1.0" @@ -412,7 +582,7 @@ dependencies = [ "pretty_assertions", "radix_trie", "reedline", - "thiserror", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -435,7 +605,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "thiserror", + "thiserror 2.0.18", "tracing", "utf8-chars", "uuid", @@ -451,6 +621,7 @@ dependencies = [ "assert_fs", "brush-builtins", "brush-core", + "brush-coreutils-builtins", "brush-experimental-builtins", "brush-interactive", "brush-parser", @@ -484,7 +655,7 @@ dependencies = [ "strip-ansi-escapes", "tempfile", "test-with", - "thiserror", + "thiserror 2.0.18", "tokio", "toml 1.0.1+spec-1.1.0", "tracing", @@ -539,6 +710,18 @@ version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.11.1" @@ -556,7 +739,7 @@ dependencies = [ "cached_proc_macro_types", "hashbrown 0.15.5", "once_cell", - "thiserror", + "thiserror 2.0.18", "web-time", ] @@ -578,6 +761,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" +[[package]] +name = "calendrical_calculations" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a0b39595c6ee54a8d0900204ba4c401d0ab4eb45adaf07178e8d017541529e7" +dependencies = [ + "core_maths", + "displaydoc", +] + [[package]] name = "cast" version = "0.3.0" @@ -744,7 +937,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" dependencies = [ - "nom", + "nom 7.1.3", "proc-macro2", "quote", "syn 2.0.114", @@ -772,9 +965,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f849b92c694fe237ecd8fafd1ba0df7ae0d45c1df6daeb7f68ed4220d51640bd" dependencies = [ "nix 0.30.1", - "thiserror", + "thiserror 2.0.18", ] +[[package]] +name = "compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3" + [[package]] name = "conpty" version = "0.5.1" @@ -796,6 +995,39 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "tiny-keccak", +] + [[package]] name = "const_format" version = "0.2.35" @@ -816,6 +1048,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "convert_case" version = "0.10.0" @@ -831,6 +1069,15 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core_maths" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" +dependencies = [ + "libm", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -849,6 +1096,33 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc-fast" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d" +dependencies = [ + "crc", + "digest", + "rustversion", + "spin", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -929,6 +1203,7 @@ dependencies = [ "crossterm_winapi", "derive_more", "document-features", + "filedescriptor", "mio", "parking_lot", "rustix", @@ -963,6 +1238,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctrlc" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" +dependencies = [ + "dispatch2", + "nix 0.31.1", + "windows-sys 0.61.2", +] + [[package]] name = "darling" version = "0.20.11" @@ -1032,6 +1318,32 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "data-encoding" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "data-encoding-macro" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" +dependencies = [ + "data-encoding", + "syn 2.0.114", +] + [[package]] name = "deranged" version = "0.5.5" @@ -1113,6 +1425,18 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.10.0", + "block2", + "libc", + "objc2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -1124,6 +1448,27 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + +[[package]] +name = "dns-lookup" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e39034cee21a2f5bbb66ba0e3689819c4bb5d00382a282006e802a7ffa6c41d" +dependencies = [ + "cfg-if", + "libc", + "socket2", + "windows-sys 0.60.2", +] + [[package]] name = "doc-comment" version = "0.3.4" @@ -1139,6 +1484,12 @@ dependencies = [ "litrs", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clone" version = "1.0.20" @@ -1235,12 +1586,45 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "filedescriptor" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" +dependencies = [ + "libc", + "thiserror 1.0.69", + "winapi", +] + +[[package]] +name = "filetime" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" +dependencies = [ + "cfg-if", + "libc", + "libredox", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +[[package]] +name = "fixed_decimal" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35eabf480f94d69182677e37571d3be065822acfafd12f2f085db44fbbcc8e57" +dependencies = [ + "displaydoc", + "smallvec", + "writeable", +] + [[package]] name = "flate2" version = "1.1.9" @@ -1302,7 +1686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.18", ] [[package]] @@ -1317,6 +1701,33 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.32" @@ -1405,6 +1816,12 @@ dependencies = [ "slab", ] +[[package]] +name = "gcd" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + [[package]] name = "generic-array" version = "0.14.7" @@ -1415,6 +1832,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + [[package]] name = "getrandom" version = "0.3.4" @@ -1510,6 +1938,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.5" @@ -1518,7 +1952,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", ] [[package]] @@ -1526,6 +1960,11 @@ name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "heck" @@ -1591,27 +2030,126 @@ dependencies = [ ] [[package]] -name = "icu_collections" +name = "icu_calendar" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e" dependencies = [ + "calendrical_calculations", "displaydoc", - "potential_utf", - "yoke", - "zerofrom", + "icu_calendar_data", + "icu_locale", + "icu_locale_core", + "icu_provider", + "ixdtf", + "serde", + "tinystr", "zerovec", ] [[package]] -name = "icu_locale" +name = "icu_calendar_data" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532b11722e350ab6bf916ba6eb0efe3ee54b932666afec989465f9243fe6dd60" +checksum = "527f04223b17edfe0bd43baf14a0cb1b017830db65f3950dc00224860a9a446d" + +[[package]] +name = "icu_collator" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32eed11a5572f1088b63fa21dc2e70d4a865e5739fc2d10abc05be93bae97019" dependencies = [ + "icu_collator_data", "icu_collections", + "icu_locale", "icu_locale_core", - "icu_locale_data", + "icu_normalizer", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "zerovec", +] + +[[package]] +name = "icu_collator_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ab06f0e83a613efddba3e4913e00e43ed4001fae651cb7d40fc7e66b83b6fb9" + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_datetime" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9d49f41ded8e63761b6b4c3120dfdc289415a1ed10107db6198eb311057ca5" +dependencies = [ + "displaydoc", + "fixed_decimal", + "icu_calendar", + "icu_datetime_data", + "icu_decimal", + "icu_locale", + "icu_locale_core", + "icu_pattern", + "icu_plurals", + "icu_provider", + "icu_time", + "potential_utf", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_datetime_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46597233625417b7c8052a63d916e4fdc73df21614ac0b679492a5d6e3b01aeb" + +[[package]] +name = "icu_decimal" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a38c52231bc348f9b982c1868a2af3195199623007ba2c7650f432038f5b3e8e" +dependencies = [ + "fixed_decimal", + "icu_decimal_data", + "icu_locale", + "icu_locale_core", + "icu_provider", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_decimal_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2905b4044eab2dd848fe84199f9195567b63ab3a93094711501363f63546fef7" + +[[package]] +name = "icu_locale" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "532b11722e350ab6bf916ba6eb0efe3ee54b932666afec989465f9243fe6dd60" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_locale_data", "icu_provider", "potential_utf", "tinystr", @@ -1638,6 +2176,81 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c5f1d16b4c3a2642d3a719f18f6b06070ab0aef246a6418130c955ae08aa831" +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_pattern" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a7ff8c0ff6f61cdce299dcb54f557b0a251adbc78f6f0c35a21332c452b4a1b" +dependencies = [ + "displaydoc", + "either", + "serde", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_plurals" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9cfe49f5b1d1163cc58db451562339916a9ca5cbcaae83924d41a0bf839474" +dependencies = [ + "fixed_decimal", + "icu_locale", + "icu_plurals_data", + "icu_provider", + "zerovec", +] + +[[package]] +name = "icu_plurals_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f018a98dccf7f0eb02ba06ac0ff67d102d8ded80734724305e924de304e12ff0" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + [[package]] name = "icu_provider" version = "2.1.1" @@ -1655,6 +2268,30 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_time" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8242b00da3b3b6678f731437a11c8833a43c821ae081eca60ba1b7579d45b6d8" +dependencies = [ + "calendrical_calculations", + "displaydoc", + "icu_calendar", + "icu_locale_core", + "icu_provider", + "icu_time_data", + "ixdtf", + "serde", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_time_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e10b0e5e87a2c84bd5fa407705732052edebe69291d347d0c3033785470edbf" + [[package]] name = "id-arena" version = "2.3.0" @@ -1707,6 +2344,19 @@ dependencies = [ "serde_core", ] +[[package]] +name = "indicatif" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" +dependencies = [ + "console 0.16.2", + "portable-atomic", + "unicode-width 0.2.2", + "unit-prefix", + "web-time", +] + [[package]] name = "inherent" version = "1.0.13" @@ -1718,13 +2368,33 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "inotify" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +dependencies = [ + "bitflags 2.10.0", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + [[package]] name = "insta" version = "1.46.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e82db8c87c7f1ccecb34ce0c24399b8a73081427f3c7c50a5d597925356115e4" dependencies = [ - "console", + "console 0.15.11", "globset", "once_cell", "pest", @@ -1791,6 +2461,64 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "ixdtf" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992" + +[[package]] +name = "jiff" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819b44bc7c87d9117eb522f14d46e918add69ff12713c475946b0a29363ed1c2" +dependencies = [ + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-sys 0.61.2", +] + +[[package]] +name = "jiff-icu" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" +dependencies = [ + "icu_calendar", + "icu_time", + "jiff", +] + +[[package]] +name = "jiff-static" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "470252db18ecc35fd766c0891b1e3ec6cbbcd62507e85276c01bf75d8e94d4a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -1823,6 +2551,35 @@ dependencies = [ "time", ] +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "kqueue" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1865,6 +2622,7 @@ checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.10.0", "libc", + "redox_syscall 0.7.3", ] [[package]] @@ -1900,12 +2658,50 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "lru" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lscolors" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d60e266dfb1426eb2d24792602e041131fdc0236bb7007abc0e589acafd60929" +dependencies = [ + "aho-corasick", + "nu-ansi-term", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +[[package]] +name = "memmap2" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.7.1" @@ -2029,6 +2825,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -2042,16 +2847,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5438dd2b2ff4c6df6e1ce22d825ed2fa93ee2922235cc45186991717f0a892d" [[package]] -name = "ntapi" -version = "0.4.2" +name = "notify" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" + "bitflags 2.10.0", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "notify-types", + "walkdir", + "windows-sys 0.60.2", +] + +[[package]] +name = "notify-types" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "ntapi" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" @@ -2067,6 +2899,7 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", + "rand 0.8.5", ] [[package]] @@ -2084,6 +2917,33 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-prime" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b285c575532a33ef6fdd3a57640d0b1c70e6ca48644d6df7bbd4b7a0cfbbb12d" +dependencies = [ + "bitvec", + "either", + "lru", + "num-bigint", + "num-integer", + "num-modular", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2093,6 +2953,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", +] + [[package]] name = "objc2-core-foundation" version = "0.3.2" @@ -2102,6 +2971,12 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + [[package]] name = "objc2-io-kit" version = "0.3.2" @@ -2133,12 +3008,44 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +[[package]] +name = "onig" +version = "6.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" +dependencies = [ + "bitflags 2.10.0", + "libc", + "once_cell", + "onig_sys", +] + +[[package]] +name = "onig_sys" +version = "69.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f86c6eef3d6df15f23bcfb6af487cbd2fed4e5581d58d5bf1f5f8b7f6727dc" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "oorandom" version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] + [[package]] name = "os-release" version = "0.1.0" @@ -2157,6 +3064,12 @@ dependencies = [ "unicode-width 0.2.2", ] +[[package]] +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + [[package]] name = "owo-colors" version = "4.2.3" @@ -2191,11 +3104,22 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", "windows-link 0.2.1", ] +[[package]] +name = "parse_datetime" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413775a7eac2261d2211a79d10ef275e5b6f7b527eec42ad09adce2ffa92b6e5" +dependencies = [ + "jiff", + "num-traits", + "winnow", +] + [[package]] name = "peg" version = "0.8.5" @@ -2316,6 +3240,22 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "platform-info" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7539aeb3fdd8cb4f6a331307cf71a1039cee75e94e8a71725b9484f4a0d9451a" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "plotters" version = "0.3.7" @@ -2344,6 +3284,21 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "portable-atomic" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "portable-atomic-util" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -2361,6 +3316,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + [[package]] name = "predicates" version = "3.1.4" @@ -2499,6 +3463,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "radix_trie" version = "0.3.0" @@ -2515,9 +3485,21 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ + "libc", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + [[package]] name = "rand" version = "0.10.0" @@ -2529,11 +3511,43 @@ dependencies = [ "rand_core 0.10.0", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] [[package]] name = "rand_core" @@ -2570,6 +3584,15 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "redox_syscall" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "reedline" version = "0.45.0" @@ -2585,7 +3608,7 @@ dependencies = [ "strip-ansi-escapes", "strum 0.26.3", "strum_macros 0.26.4", - "thiserror", + "thiserror 2.0.18", "unicase", "unicode-segmentation", "unicode-width 0.2.2", @@ -2679,6 +3702,16 @@ dependencies = [ "serde", ] +[[package]] +name = "rust-ini" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +dependencies = [ + "cfg-if", + "ordered-multimap", +] + [[package]] name = "rustc-demangle" version = "0.1.27" @@ -2853,6 +3886,17 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + [[package]] name = "sha2" version = "0.10.9" @@ -2864,6 +3908,16 @@ dependencies = [ "digest", ] +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -2934,18 +3988,53 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +[[package]] +name = "sm3" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860" +dependencies = [ + "digest", +] + [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" + [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "string-interner" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23de088478b31c349c9ba67816fa55d9355232d63c3afea8bf513e31f0f1d2c0" +dependencies = [ + "hashbrown 0.15.5", + "serde", +] + [[package]] name = "strip-ansi-escapes" version = "0.2.1" @@ -3066,6 +4155,12 @@ dependencies = [ "windows 0.61.3", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" version = "3.25.0" @@ -3096,7 +4191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" dependencies = [ "fnv", - "nom", + "nom 7.1.3", "phf", "phf_codegen", ] @@ -3131,13 +4226,33 @@ dependencies = [ "unicode-width 0.2.2", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] @@ -3191,6 +4306,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinystr" version = "0.8.2" @@ -3331,149 +4455,1072 @@ dependencies = [ ] [[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "triomphe" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" + +[[package]] +name = "type-map" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" +dependencies = [ + "rustc-hash", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "unic-langid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05" +dependencies = [ + "unic-langid-impl", +] + +[[package]] +name = "unic-langid-impl" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" +dependencies = [ + "tinystr", +] + +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + +[[package]] +name = "unicode-ident" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8-chars" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe49e006d6df172d7f14794568a90fe41e05a1fa9e03dc276fa6da4bb747ec3" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uu_arch" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "platform-info", + "uucore 0.7.0", +] + +[[package]] +name = "uu_b2sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_base32" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_base64" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_base32", + "uucore 0.7.0", +] + +[[package]] +name = "uu_basename" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_basenc" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_base32", + "uucore 0.7.0", +] + +[[package]] +name = "uu_cat" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "memchr", + "nix 0.30.1", + "thiserror 2.0.18", + "uucore 0.7.0", + "winapi-util", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_checksum_common" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_cksum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_comm" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_cp" +version = "0.7.0" +dependencies = [ + "clap", + "filetime", + "fluent", + "indicatif", + "libc", + "thiserror 2.0.18", + "uucore 0.7.0", + "walkdir", +] + +[[package]] +name = "uu_csplit" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "regex", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_cut" +version = "0.7.0" +dependencies = [ + "bstr", + "clap", + "fluent", + "memchr", + "uucore 0.7.0", +] + +[[package]] +name = "uu_date" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "icu_calendar", + "icu_locale", + "jiff", + "jiff-icu", + "nix 0.30.1", + "parse_datetime", + "regex", + "uucore 0.7.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_dd" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "gcd", + "libc", + "nix 0.30.1", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_df" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "unicode-width 0.2.2", + "uucore 0.7.0", +] + +[[package]] +name = "uu_dir" +version = "0.7.0" +dependencies = [ + "clap", + "uu_ls", + "uucore 0.7.0", +] + +[[package]] +name = "uu_dircolors" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_dirname" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_du" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "glob", + "rustc-hash", + "thiserror 2.0.18", + "uucore 0.7.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_echo" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_env" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "nix 0.30.1", + "rust-ini", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_expand" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "unicode-width 0.2.2", + "uucore 0.7.0", +] + +[[package]] +name = "uu_expr" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "num-bigint", + "num-traits", + "onig", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_factor" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "num-bigint", + "num-prime", + "num-traits", + "uucore 0.7.0", +] + +[[package]] +name = "uu_false" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_fmt" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "unicode-width 0.2.2", + "uucore 0.7.0", +] + +[[package]] +name = "uu_fold" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "unicode-width 0.2.2", + "uucore 0.7.0", +] + +[[package]] +name = "uu_head" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "memchr", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_hostname" +version = "0.7.0" +dependencies = [ + "clap", + "dns-lookup", + "fluent", + "hostname", + "uucore 0.7.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_join" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "memchr", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_link" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_ln" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_ls" +version = "0.7.0" +dependencies = [ + "ansi-width", + "clap", + "fluent", + "glob", + "hostname", + "lscolors", + "rustc-hash", + "terminal_size", + "thiserror 2.0.18", + "uucore 0.7.0", + "uutils_term_grid", +] + +[[package]] +name = "uu_md5sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_mkdir" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_mktemp" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "rand 0.9.2", + "tempfile", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_more" +version = "0.7.0" +dependencies = [ + "clap", + "crossterm", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_mv" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "fs_extra", + "indicatif", + "libc", + "rustc-hash", + "thiserror 2.0.18", + "uucore 0.7.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_nl" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "itoa", + "regex", + "uucore 0.7.0", +] + +[[package]] +name = "uu_nproc" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "libc", + "uucore 0.7.0", +] + +[[package]] +name = "uu_numfmt" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_od" +version = "0.7.0" +dependencies = [ + "byteorder", + "clap", + "fluent", + "half", + "libc", + "uucore 0.7.0", +] + +[[package]] +name = "uu_paste" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_pr" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "itertools 0.14.0", + "memchr", + "regex", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_printenv" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_printf" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_ptx" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "regex", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_pwd" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_readlink" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_realpath" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_rm" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "indicatif", + "libc", + "thiserror 2.0.18", + "uucore 0.7.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "uu_rmdir" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "libc", + "uucore 0.7.0", +] + +[[package]] +name = "uu_seq" +version = "0.7.0" +dependencies = [ + "bigdecimal", + "clap", + "fluent", + "num-bigint", + "num-traits", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sha1sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sha224sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sha256sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sha384sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sha512sum" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uu_checksum_common", + "uucore 0.7.0", +] + +[[package]] +name = "uu_shred" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "libc", + "rand 0.9.2", + "uucore 0.7.0", +] + +[[package]] +name = "uu_shuf" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "itoa", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rustc-hash", + "sha3", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sleep" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] + +[[package]] +name = "uu_sort" +version = "0.7.0" +dependencies = [ + "ahash", + "bigdecimal", + "binary-heap-plus", + "clap", + "compare", + "ctrlc", + "fluent", + "itertools 0.14.0", + "memchr", + "nix 0.30.1", + "rand 0.9.2", + "rayon", + "self_cell", + "tempfile", + "thiserror 2.0.18", + "uucore 0.7.0", +] + +[[package]] +name = "uu_split" +version = "0.7.0" dependencies = [ - "log", - "once_cell", - "tracing-core", + "clap", + "fluent", + "memchr", + "thiserror 2.0.18", + "uucore 0.7.0", ] [[package]] -name = "tracing-subscriber" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +name = "uu_sum" +version = "0.7.0" dependencies = [ - "nu-ansi-term", - "sharded-slab", - "smallvec", - "thread_local", - "tracing-core", - "tracing-log", + "clap", + "fluent", + "uucore 0.7.0", ] [[package]] -name = "triomphe" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" +name = "uu_sync" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "nix 0.30.1", + "uucore 0.7.0", + "windows-sys 0.61.2", +] [[package]] -name = "type-map" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" +name = "uu_tac" +version = "0.7.0" dependencies = [ - "rustc-hash", + "clap", + "fluent", + "libc", + "memchr", + "memmap2", + "regex", + "tempfile", + "thiserror 2.0.18", + "uucore 0.7.0", ] [[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" +name = "uu_tail" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "libc", + "memchr", + "nix 0.30.1", + "notify", + "same-file", + "uucore 0.7.0", + "windows-sys 0.61.2", +] [[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +name = "uu_tee" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] [[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +name = "uu_test" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "libc", + "thiserror 2.0.18", + "uucore 0.7.0", +] [[package]] -name = "unic-langid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05" +name = "uu_touch" +version = "0.7.0" dependencies = [ - "unic-langid-impl", + "clap", + "filetime", + "fluent", + "jiff", + "parse_datetime", + "thiserror 2.0.18", + "uucore 0.7.0", + "windows-sys 0.61.2", ] [[package]] -name = "unic-langid-impl" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" +name = "uu_tr" +version = "0.7.0" dependencies = [ - "tinystr", + "bytecount", + "clap", + "fluent", + "nom 8.0.0", + "uucore 0.7.0", ] [[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" +name = "uu_true" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] [[package]] -name = "unicode-ident" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +name = "uu_truncate" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] [[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" +name = "uu_tsort" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "nix 0.30.1", + "rustc-hash", + "string-interner", + "thiserror 2.0.18", + "uucore 0.7.0", +] [[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +name = "uu_uname" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "platform-info", + "uucore 0.7.0", +] [[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +name = "uu_unexpand" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "thiserror 2.0.18", + "uucore 0.7.0", +] [[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" +name = "uu_uniq" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] [[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +name = "uu_unlink" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "uucore 0.7.0", +] [[package]] -name = "unit-prefix" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" +name = "uu_vdir" +version = "0.7.0" +dependencies = [ + "clap", + "uu_ls", + "uucore 0.7.0", +] [[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +name = "uu_wc" +version = "0.7.0" +dependencies = [ + "bytecount", + "clap", + "fluent", + "libc", + "nix 0.30.1", + "thiserror 2.0.18", + "unicode-width 0.2.2", + "uucore 0.7.0", +] [[package]] -name = "utf8-chars" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe49e006d6df172d7f14794568a90fe41e05a1fa9e03dc276fa6da4bb747ec3" +name = "uu_whoami" +version = "0.7.0" dependencies = [ - "arrayvec", + "clap", + "fluent", + "uucore 0.7.0", + "windows-sys 0.61.2", ] [[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +name = "uu_yes" +version = "0.7.0" +dependencies = [ + "clap", + "fluent", + "itertools 0.14.0", + "uucore 0.7.0", +] [[package]] name = "uucore" @@ -3491,11 +5538,64 @@ dependencies = [ "nix 0.30.1", "num-traits", "os_display", - "thiserror", + "thiserror 2.0.18", + "unic-langid", + "unit-prefix", + "uucore_procs 0.6.0", + "wild", +] + +[[package]] +name = "uucore" +version = "0.7.0" +dependencies = [ + "base64-simd", + "bigdecimal", + "blake2b_simd", + "blake3", + "bstr", + "clap", + "crc-fast", + "data-encoding", + "data-encoding-macro", + "digest", + "dunce", + "fluent", + "fluent-bundle", + "fluent-syntax", + "glob", + "hex", + "icu_calendar", + "icu_collator", + "icu_datetime", + "icu_decimal", + "icu_locale", + "icu_provider", + "itertools 0.14.0", + "jiff", + "jiff-icu", + "libc", + "md-5", + "memchr", + "nix 0.30.1", + "num-traits", + "os_display", + "procfs", + "rustc-hash", + "sha1", + "sha2", + "sha3", + "sm3", + "thiserror 2.0.18", "unic-langid", "unit-prefix", - "uucore_procs", + "uucore_procs 0.7.0", + "walkdir", "wild", + "winapi-util", + "windows-sys 0.61.2", + "xattr", + "z85", ] [[package]] @@ -3508,6 +5608,14 @@ dependencies = [ "quote", ] +[[package]] +name = "uucore_procs" +version = "0.7.0" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "uuid" version = "1.21.0" @@ -3519,6 +5627,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "uutils_term_grid" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcba141ce511bad08e80b43f02976571072e1ff4286f7d628943efbd277c6361" +dependencies = [ + "ansi-width", +] + [[package]] name = "uzers" version = "0.12.2" @@ -3547,6 +5664,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "vte" version = "0.14.1" @@ -4251,11 +6374,39 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + [[package]] name = "writeable" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +dependencies = [ + "either", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] [[package]] name = "xshell" @@ -4317,6 +6468,12 @@ dependencies = [ "synstructure", ] +[[package]] +name = "z85" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e61e59a957b7ccee15d2049f86e8bfd6f66968fcd88f018950662d9b86e675" + [[package]] name = "zerocopy" version = "0.8.39" @@ -4365,6 +6522,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", + "yoke", + "zerofrom", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 0064d34ca..b759572c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "brush-parser", "brush-core", "brush-builtins", + "brush-coreutils-builtins", "brush-experimental-builtins", "brush-interactive", "brush-test-harness", diff --git a/brush-coreutils-builtins/Cargo.toml b/brush-coreutils-builtins/Cargo.toml new file mode 100644 index 000000000..12851466d --- /dev/null +++ b/brush-coreutils-builtins/Cargo.toml @@ -0,0 +1,274 @@ +[package] +name = "brush-coreutils-builtins" +description = "Optional coreutils builtins for brush-shell (powered by uutils/coreutils)" +version = "0.1.0" +categories.workspace = true +edition.workspace = true +keywords.workspace = true +license.workspace = true +readme.workspace = true +repository.workspace = true +rust-version.workspace = true + +[lib] +bench = false + +[features] +default = ['coreutils.all'] + +'coreutils.all' = [ + 'coreutils.arch', + 'coreutils.base32', + 'coreutils.base64', + 'coreutils.basename', + 'coreutils.basenc', + 'coreutils.cat', + 'coreutils.cksum', + 'coreutils.b2sum', + 'coreutils.md5sum', + 'coreutils.sha1sum', + 'coreutils.sha224sum', + 'coreutils.sha256sum', + 'coreutils.sha384sum', + 'coreutils.sha512sum', + 'coreutils.comm', + 'coreutils.cp', + 'coreutils.csplit', + 'coreutils.cut', + 'coreutils.date', + 'coreutils.dd', + 'coreutils.df', + 'coreutils.dir', + 'coreutils.dircolors', + 'coreutils.dirname', + 'coreutils.du', + 'coreutils.echo', + 'coreutils.env', + 'coreutils.expand', + 'coreutils.expr', + 'coreutils.factor', + 'coreutils.false', + 'coreutils.fmt', + 'coreutils.fold', + 'coreutils.head', + 'coreutils.hostname', + 'coreutils.join', + 'coreutils.link', + 'coreutils.ln', + 'coreutils.ls', + 'coreutils.mkdir', + 'coreutils.mktemp', + 'coreutils.more', + 'coreutils.mv', + 'coreutils.nl', + 'coreutils.nproc', + 'coreutils.numfmt', + 'coreutils.od', + 'coreutils.paste', + 'coreutils.pr', + 'coreutils.printenv', + 'coreutils.printf', + 'coreutils.ptx', + 'coreutils.pwd', + 'coreutils.readlink', + 'coreutils.realpath', + 'coreutils.rm', + 'coreutils.rmdir', + 'coreutils.seq', + 'coreutils.shred', + 'coreutils.shuf', + 'coreutils.sleep', + 'coreutils.sort', + 'coreutils.split', + 'coreutils.sum', + 'coreutils.sync', + 'coreutils.tac', + 'coreutils.tail', + 'coreutils.tee', + 'coreutils.test', + 'coreutils.touch', + 'coreutils.tr', + 'coreutils.true', + 'coreutils.truncate', + 'coreutils.tsort', + 'coreutils.uname', + 'coreutils.unexpand', + 'coreutils.uniq', + 'coreutils.unlink', + 'coreutils.vdir', + 'coreutils.wc', + 'coreutils.whoami', + 'coreutils.yes', +] + +'coreutils.arch' = ["dep:uu_arch"] +'coreutils.base32' = ["dep:uu_base32"] +'coreutils.base64' = ["dep:uu_base64"] +'coreutils.basename' = ["dep:uu_basename"] +'coreutils.basenc' = ["dep:uu_basenc"] +'coreutils.cat' = ["dep:uu_cat"] +'coreutils.cksum' = ["dep:uu_cksum"] +'coreutils.b2sum' = ["dep:uu_b2sum"] +'coreutils.md5sum' = ["dep:uu_md5sum"] +'coreutils.sha1sum' = ["dep:uu_sha1sum"] +'coreutils.sha224sum' = ["dep:uu_sha224sum"] +'coreutils.sha256sum' = ["dep:uu_sha256sum"] +'coreutils.sha384sum' = ["dep:uu_sha384sum"] +'coreutils.sha512sum' = ["dep:uu_sha512sum"] +'coreutils.comm' = ["dep:uu_comm"] +'coreutils.cp' = ["dep:uu_cp"] +'coreutils.csplit' = ["dep:uu_csplit"] +'coreutils.cut' = ["dep:uu_cut"] +'coreutils.date' = ["dep:uu_date"] +'coreutils.dd' = ["dep:uu_dd"] +'coreutils.df' = ["dep:uu_df"] +'coreutils.dir' = ["dep:uu_dir"] +'coreutils.dircolors' = ["dep:uu_dircolors"] +'coreutils.dirname' = ["dep:uu_dirname"] +'coreutils.du' = ["dep:uu_du"] +'coreutils.echo' = ["dep:uu_echo"] +'coreutils.env' = ["dep:uu_env"] +'coreutils.expand' = ["dep:uu_expand"] +'coreutils.expr' = ["dep:uu_expr"] +'coreutils.factor' = ["dep:uu_factor"] +'coreutils.false' = ["dep:uu_false"] +'coreutils.fmt' = ["dep:uu_fmt"] +'coreutils.fold' = ["dep:uu_fold"] +'coreutils.head' = ["dep:uu_head"] +'coreutils.hostname' = ["dep:uu_hostname"] +'coreutils.join' = ["dep:uu_join"] +'coreutils.link' = ["dep:uu_link"] +'coreutils.ln' = ["dep:uu_ln"] +'coreutils.ls' = ["dep:uu_ls"] +'coreutils.mkdir' = ["dep:uu_mkdir"] +'coreutils.mktemp' = ["dep:uu_mktemp"] +'coreutils.more' = ["dep:uu_more"] +'coreutils.mv' = ["dep:uu_mv"] +'coreutils.nl' = ["dep:uu_nl"] +'coreutils.nproc' = ["dep:uu_nproc"] +'coreutils.numfmt' = ["dep:uu_numfmt"] +'coreutils.od' = ["dep:uu_od"] +'coreutils.paste' = ["dep:uu_paste"] +'coreutils.pr' = ["dep:uu_pr"] +'coreutils.printenv' = ["dep:uu_printenv"] +'coreutils.printf' = ["dep:uu_printf"] +'coreutils.ptx' = ["dep:uu_ptx"] +'coreutils.pwd' = ["dep:uu_pwd"] +'coreutils.readlink' = ["dep:uu_readlink"] +'coreutils.realpath' = ["dep:uu_realpath"] +'coreutils.rm' = ["dep:uu_rm"] +'coreutils.rmdir' = ["dep:uu_rmdir"] +'coreutils.seq' = ["dep:uu_seq"] +'coreutils.shred' = ["dep:uu_shred"] +'coreutils.shuf' = ["dep:uu_shuf"] +'coreutils.sleep' = ["dep:uu_sleep"] +'coreutils.sort' = ["dep:uu_sort"] +'coreutils.split' = ["dep:uu_split"] +'coreutils.sum' = ["dep:uu_sum"] +'coreutils.sync' = ["dep:uu_sync"] +'coreutils.tac' = ["dep:uu_tac"] +'coreutils.tail' = ["dep:uu_tail"] +'coreutils.tee' = ["dep:uu_tee"] +'coreutils.test' = ["dep:uu_test"] +'coreutils.touch' = ["dep:uu_touch"] +'coreutils.tr' = ["dep:uu_tr"] +'coreutils.true' = ["dep:uu_true"] +'coreutils.truncate' = ["dep:uu_truncate"] +'coreutils.tsort' = ["dep:uu_tsort"] +'coreutils.uname' = ["dep:uu_uname"] +'coreutils.unexpand' = ["dep:uu_unexpand"] +'coreutils.uniq' = ["dep:uu_uniq"] +'coreutils.unlink' = ["dep:uu_unlink"] +'coreutils.vdir' = ["dep:uu_vdir"] +'coreutils.wc' = ["dep:uu_wc"] +'coreutils.whoami' = ["dep:uu_whoami"] +'coreutils.yes' = ["dep:uu_yes"] + +[lints] +workspace = true + +[dependencies] +brush-core = { version = "^0.4.0", path = "../brush-core" } + +uu_arch= { path = "../../coreutils/src/uu/arch", optional = true } +uu_base32 = { path = "../../coreutils/src/uu/base32", optional = true } +uu_base64 = { path = "../../coreutils/src/uu/base64", optional = true } +uu_basename = { path = "../../coreutils/src/uu/basename", optional = true } +uu_basenc = { path = "../../coreutils/src/uu/basenc", optional = true } +uu_cat = { path = "../../coreutils/src/uu/cat", optional = true } +uu_cksum = { path = "../../coreutils/src/uu/cksum", optional = true } +uu_b2sum = { path = "../../coreutils/src/uu/b2sum", optional = true } +uu_md5sum = { path = "../../coreutils/src/uu/md5sum", optional = true } +uu_sha1sum = { path = "../../coreutils/src/uu/sha1sum", optional = true } +uu_sha224sum = { path = "../../coreutils/src/uu/sha224sum", optional = true } +uu_sha256sum = { path = "../../coreutils/src/uu/sha256sum", optional = true } +uu_sha384sum = { path = "../../coreutils/src/uu/sha384sum", optional = true } +uu_sha512sum = { path = "../../coreutils/src/uu/sha512sum", optional = true } +uu_comm = { path = "../../coreutils/src/uu/comm", optional = true } +uu_cp = { path = "../../coreutils/src/uu/cp", optional = true } +uu_csplit = { path = "../../coreutils/src/uu/csplit", optional = true } +uu_cut = { path = "../../coreutils/src/uu/cut", optional = true } +uu_date = { path = "../../coreutils/src/uu/date", optional = true } +uu_dd = { path = "../../coreutils/src/uu/dd", optional = true } +uu_df = { path = "../../coreutils/src/uu/df", optional = true } +uu_dir = { path = "../../coreutils/src/uu/dir", optional = true } +uu_dircolors = { path = "../../coreutils/src/uu/dircolors", optional = true } +uu_dirname = { path = "../../coreutils/src/uu/dirname", optional = true } +uu_du = { path = "../../coreutils/src/uu/du", optional = true } +uu_echo = { path = "../../coreutils/src/uu/echo", optional = true } +uu_env = { path = "../../coreutils/src/uu/env", optional = true } +uu_expand = { path = "../../coreutils/src/uu/expand", optional = true } +uu_expr = { path = "../../coreutils/src/uu/expr", optional = true } +uu_factor = { path = "../../coreutils/src/uu/factor", optional = true } +uu_false = { path = "../../coreutils/src/uu/false", optional = true } +uu_fmt = { path = "../../coreutils/src/uu/fmt", optional = true } +uu_fold = { path = "../../coreutils/src/uu/fold", optional = true } +uu_head = { path = "../../coreutils/src/uu/head", optional = true } +uu_hostname = { path = "../../coreutils/src/uu/hostname", optional = true } +uu_join = { path = "../../coreutils/src/uu/join", optional = true } +uu_link = { path = "../../coreutils/src/uu/link", optional = true } +uu_ln = { path = "../../coreutils/src/uu/ln", optional = true } +uu_ls = { path = "../../coreutils/src/uu/ls", optional = true } +uu_mkdir = { path = "../../coreutils/src/uu/mkdir", optional = true } +uu_mktemp = { path = "../../coreutils/src/uu/mktemp", optional = true } +uu_more = { path = "../../coreutils/src/uu/more", optional = true } +uu_mv = { path = "../../coreutils/src/uu/mv", optional = true } +uu_nl = { path = "../../coreutils/src/uu/nl", optional = true } +uu_nproc = { path = "../../coreutils/src/uu/nproc", optional = true } +uu_numfmt = { path = "../../coreutils/src/uu/numfmt", optional = true } +uu_od = { path = "../../coreutils/src/uu/od", optional = true } +uu_paste = { path = "../../coreutils/src/uu/paste", optional = true } +uu_pr = { path = "../../coreutils/src/uu/pr", optional = true } +uu_printenv = { path = "../../coreutils/src/uu/printenv", optional = true } +uu_printf = { path = "../../coreutils/src/uu/printf", optional = true } +uu_ptx = { path = "../../coreutils/src/uu/ptx", optional = true } +uu_pwd = { path = "../../coreutils/src/uu/pwd", optional = true } +uu_readlink = { path = "../../coreutils/src/uu/readlink", optional = true } +uu_realpath = { path = "../../coreutils/src/uu/realpath", optional = true } +uu_rm = { path = "../../coreutils/src/uu/rm", optional = true } +uu_rmdir = { path = "../../coreutils/src/uu/rmdir", optional = true } +uu_seq = { path = "../../coreutils/src/uu/seq", optional = true } +uu_shred = { path = "../../coreutils/src/uu/shred", optional = true } +uu_shuf = { path = "../../coreutils/src/uu/shuf", optional = true } +uu_sleep = { path = "../../coreutils/src/uu/sleep", optional = true } +uu_sort = { path = "../../coreutils/src/uu/sort", optional = true } +uu_split = { path = "../../coreutils/src/uu/split", optional = true } +uu_sum = { path = "../../coreutils/src/uu/sum", optional = true } +uu_sync = { path = "../../coreutils/src/uu/sync", optional = true } +uu_tac = { path = "../../coreutils/src/uu/tac", optional = true } +uu_tail = { path = "../../coreutils/src/uu/tail", optional = true } +uu_tee = { path = "../../coreutils/src/uu/tee", optional = true } +uu_test = { path = "../../coreutils/src/uu/test", optional = true } +uu_touch = { path = "../../coreutils/src/uu/touch", optional = true } +uu_tr = { path = "../../coreutils/src/uu/tr", optional = true } +uu_true = { path = "../../coreutils/src/uu/true", optional = true } +uu_truncate = { path = "../../coreutils/src/uu/truncate", optional = true } +uu_tsort = { path = "../../coreutils/src/uu/tsort", optional = true } +uu_uname = { path = "../../coreutils/src/uu/uname", optional = true } +uu_unexpand = { path = "../../coreutils/src/uu/unexpand", optional = true } +uu_uniq = { path = "../../coreutils/src/uu/uniq", optional = true } +uu_unlink = { path = "../../coreutils/src/uu/unlink", optional = true } +uu_vdir = { path = "../../coreutils/src/uu/vdir", optional = true } +uu_wc = { path = "../../coreutils/src/uu/wc", optional = true } +uu_whoami = { path = "../../coreutils/src/uu/whoami", optional = true } +uu_yes = { path = "../../coreutils/src/uu/yes", optional = true } diff --git a/brush-coreutils-builtins/src/lib.rs b/brush-coreutils-builtins/src/lib.rs new file mode 100644 index 000000000..0e5622711 --- /dev/null +++ b/brush-coreutils-builtins/src/lib.rs @@ -0,0 +1,420 @@ +//! Optional coreutils builtins for brush, powered by uutils/coreutils. +//! +//! Each utility is feature-gated (e.g., `coreutils.cat`, `coreutils.ls`) and +//! can be individually enabled or disabled. The `coreutils.all` feature enables +//! all cross-platform utilities. + +use std::collections::HashMap; +use std::ffi::OsString; + +use brush_core::builtins::{self, ContentType, ContentOptions}; + +/// Generates a [`builtins::SimpleCommand`] wrapper around a coreutils `uumain` function. +macro_rules! coreutils_builtin { + ($struct_name:ident, $util_crate:ident, $desc:literal) => { + /// Coreutils builtin wrapping the corresponding uutils implementation. + pub(crate) struct $struct_name; + + impl builtins::SimpleCommand for $struct_name { + fn get_content( + _name: &str, + content_type: ContentType, + _options: &ContentOptions, + ) -> Result { + match content_type { + ContentType::DetailedHelp | ContentType::ShortDescription => { + Ok($desc.into()) + } + ContentType::ShortUsage => Ok(String::new()), + ContentType::ManPage => { + brush_core::error::unimp("man page not available for coreutils builtin") + } + } + } + + #[expect(clippy::cast_sign_loss)] + fn execute< + SE: brush_core::ShellExtensions, + I: Iterator, + S: AsRef, + >( + _context: brush_core::ExecutionContext<'_, SE>, + args: I, + ) -> Result { + let os_args: Vec = + args.map(|a| OsString::from(a.as_ref())).collect(); + + let code = $util_crate::uumain(os_args.into_iter()); + Ok(brush_core::ExecutionResult::new((code & 0xFF) as u8)) + } + } + }; +} + +/// Registers a coreutils builtin in the map if its feature is enabled. +macro_rules! register_coreutils_builtin { + ($map:expr, $feature:literal, $name:literal, $struct_name:ident) => { + #[cfg(feature = $feature)] + $map.insert( + $name.into(), + builtins::simple_builtin::<$struct_name, SE>(), + ); + }; +} + +// ── Builtin struct declarations ───────────────────────────────────────────── + +#[cfg(feature = "coreutils.arch")] +coreutils_builtin!(ArchCommand, uu_arch, "print machine hardware name"); + +#[cfg(feature = "coreutils.base32")] +coreutils_builtin!(Base32Command, uu_base32, "base32 encode/decode data"); + +#[cfg(feature = "coreutils.base64")] +coreutils_builtin!(Base64Command, uu_base64, "base64 encode/decode data"); + +#[cfg(feature = "coreutils.basename")] +coreutils_builtin!(BasenameCommand, uu_basename, "strip directory and suffix from filenames"); + +#[cfg(feature = "coreutils.basenc")] +coreutils_builtin!(BasencCommand, uu_basenc, "encode/decode data and print to stdout"); + +#[cfg(feature = "coreutils.cat")] +coreutils_builtin!(CatCommand, uu_cat, "concatenate files and print on the standard output"); + +#[cfg(feature = "coreutils.cksum")] +coreutils_builtin!(CksumCommand, uu_cksum, "print CRC checksum and byte counts"); + +#[cfg(feature = "coreutils.b2sum")] +coreutils_builtin!(B2sumCommand, uu_b2sum, "print or check BLAKE2 message digests"); + +#[cfg(feature = "coreutils.md5sum")] +coreutils_builtin!(Md5sumCommand, uu_md5sum, "print or check MD5 message digests"); + +#[cfg(feature = "coreutils.sha1sum")] +coreutils_builtin!(Sha1sumCommand, uu_sha1sum, "print or check SHA1 message digests"); + +#[cfg(feature = "coreutils.sha224sum")] +coreutils_builtin!(Sha224sumCommand, uu_sha224sum, "print or check SHA224 message digests"); + +#[cfg(feature = "coreutils.sha256sum")] +coreutils_builtin!(Sha256sumCommand, uu_sha256sum, "print or check SHA256 message digests"); + +#[cfg(feature = "coreutils.sha384sum")] +coreutils_builtin!(Sha384sumCommand, uu_sha384sum, "print or check SHA384 message digests"); + +#[cfg(feature = "coreutils.sha512sum")] +coreutils_builtin!(Sha512sumCommand, uu_sha512sum, "print or check SHA512 message digests"); + +#[cfg(feature = "coreutils.comm")] +coreutils_builtin!(CommCommand, uu_comm, "compare two sorted files line by line"); + +#[cfg(feature = "coreutils.cp")] +coreutils_builtin!(CpCommand, uu_cp, "copy files and directories"); + +#[cfg(feature = "coreutils.csplit")] +coreutils_builtin!(CsplitCommand, uu_csplit, "split a file into sections"); + +#[cfg(feature = "coreutils.cut")] +coreutils_builtin!(CutCommand, uu_cut, "remove sections from each line of files"); + +#[cfg(feature = "coreutils.date")] +coreutils_builtin!(DateCommand, uu_date, "print or set the system date and time"); + +#[cfg(feature = "coreutils.dd")] +coreutils_builtin!(DdCommand, uu_dd, "convert and copy a file"); + +#[cfg(feature = "coreutils.df")] +coreutils_builtin!(DfCommand, uu_df, "report file system disk space usage"); + +#[cfg(feature = "coreutils.dir")] +coreutils_builtin!(DirCommand, uu_dir, "list directory contents"); + +#[cfg(feature = "coreutils.dircolors")] +coreutils_builtin!(DircolorsCommand, uu_dircolors, "color setup for ls"); + +#[cfg(feature = "coreutils.dirname")] +coreutils_builtin!(DirnameCommand, uu_dirname, "strip last component from file name"); + +#[cfg(feature = "coreutils.du")] +coreutils_builtin!(DuCommand, uu_du, "estimate file space usage"); + +#[cfg(feature = "coreutils.echo")] +coreutils_builtin!(EchoCommand, uu_echo, "display a line of text (coreutils)"); + +#[cfg(feature = "coreutils.env")] +coreutils_builtin!(EnvCommand, uu_env, "run a program in a modified environment"); + +#[cfg(feature = "coreutils.expand")] +coreutils_builtin!(ExpandCommand, uu_expand, "convert tabs to spaces"); + +#[cfg(feature = "coreutils.expr")] +coreutils_builtin!(ExprCommand, uu_expr, "evaluate expressions"); + +#[cfg(feature = "coreutils.factor")] +coreutils_builtin!(FactorCommand, uu_factor, "factor numbers"); + +#[cfg(feature = "coreutils.false")] +coreutils_builtin!(FalseCommand, uu_false, "do nothing, unsuccessfully"); + +#[cfg(feature = "coreutils.fmt")] +coreutils_builtin!(FmtCommand, uu_fmt, "simple optimal text formatter"); + +#[cfg(feature = "coreutils.fold")] +coreutils_builtin!(FoldCommand, uu_fold, "wrap each input line to fit in specified width"); + +#[cfg(feature = "coreutils.head")] +coreutils_builtin!(HeadCommand, uu_head, "output the first part of files"); + +#[cfg(feature = "coreutils.hostname")] +coreutils_builtin!(HostnameCommand, uu_hostname, "print the system hostname"); + +#[cfg(feature = "coreutils.join")] +coreutils_builtin!(JoinCommand, uu_join, "join lines of two files on a common field"); + +#[cfg(feature = "coreutils.link")] +coreutils_builtin!(LinkCommand, uu_link, "create a link to a file"); + +#[cfg(feature = "coreutils.ln")] +coreutils_builtin!(LnCommand, uu_ln, "make links between files"); + +#[cfg(feature = "coreutils.ls")] +coreutils_builtin!(LsCommand, uu_ls, "list directory contents"); + +#[cfg(feature = "coreutils.mkdir")] +coreutils_builtin!(MkdirCommand, uu_mkdir, "make directories"); + +#[cfg(feature = "coreutils.mktemp")] +coreutils_builtin!(MktempCommand, uu_mktemp, "create a temporary file or directory"); + +#[cfg(feature = "coreutils.more")] +coreutils_builtin!(MoreCommand, uu_more, "file perusal filter for crt viewing"); + +#[cfg(feature = "coreutils.mv")] +coreutils_builtin!(MvCommand, uu_mv, "move (rename) files"); + +#[cfg(feature = "coreutils.nl")] +coreutils_builtin!(NlCommand, uu_nl, "number lines of files"); + +#[cfg(feature = "coreutils.nproc")] +coreutils_builtin!(NprocCommand, uu_nproc, "print the number of processing units"); + +#[cfg(feature = "coreutils.numfmt")] +coreutils_builtin!(NumfmtCommand, uu_numfmt, "convert numbers from/to human-readable strings"); + +#[cfg(feature = "coreutils.od")] +coreutils_builtin!(OdCommand, uu_od, "dump files in octal and other formats"); + +#[cfg(feature = "coreutils.paste")] +coreutils_builtin!(PasteCommand, uu_paste, "merge lines of files"); + +#[cfg(feature = "coreutils.pr")] +coreutils_builtin!(PrCommand, uu_pr, "paginate or columnate files for printing"); + +#[cfg(feature = "coreutils.printenv")] +coreutils_builtin!(PrintenvCommand, uu_printenv, "print all or part of environment"); + +#[cfg(feature = "coreutils.printf")] +coreutils_builtin!(PrintfCommand, uu_printf, "format and print data (coreutils)"); + +#[cfg(feature = "coreutils.ptx")] +coreutils_builtin!(PtxCommand, uu_ptx, "produce a permuted index of file contents"); + +#[cfg(feature = "coreutils.pwd")] +coreutils_builtin!(PwdCommand, uu_pwd, "print name of current/working directory (coreutils)"); + +#[cfg(feature = "coreutils.readlink")] +coreutils_builtin!(ReadlinkCommand, uu_readlink, "print resolved symbolic links or canonical file names"); + +#[cfg(feature = "coreutils.realpath")] +coreutils_builtin!(RealpathCommand, uu_realpath, "print the resolved path"); + +#[cfg(feature = "coreutils.rm")] +coreutils_builtin!(RmCommand, uu_rm, "remove files or directories"); + +#[cfg(feature = "coreutils.rmdir")] +coreutils_builtin!(RmdirCommand, uu_rmdir, "remove empty directories"); + +#[cfg(feature = "coreutils.seq")] +coreutils_builtin!(SeqCommand, uu_seq, "print a sequence of numbers"); + +#[cfg(feature = "coreutils.shred")] +coreutils_builtin!(ShredCommand, uu_shred, "overwrite a file to hide its contents"); + +#[cfg(feature = "coreutils.shuf")] +coreutils_builtin!(ShufCommand, uu_shuf, "generate random permutations"); + +#[cfg(feature = "coreutils.sleep")] +coreutils_builtin!(SleepCommand, uu_sleep, "delay for a specified amount of time"); + +#[cfg(feature = "coreutils.sort")] +coreutils_builtin!(SortCommand, uu_sort, "sort lines of text files"); + +#[cfg(feature = "coreutils.split")] +coreutils_builtin!(SplitCommand, uu_split, "split a file into pieces"); + +#[cfg(feature = "coreutils.sum")] +coreutils_builtin!(SumCommand, uu_sum, "checksum and count the blocks in a file"); + +#[cfg(feature = "coreutils.sync")] +coreutils_builtin!(SyncCommand, uu_sync, "synchronize cached writes to persistent storage"); + +#[cfg(feature = "coreutils.tac")] +coreutils_builtin!(TacCommand, uu_tac, "concatenate and print files in reverse"); + +#[cfg(feature = "coreutils.tail")] +coreutils_builtin!(TailCommand, uu_tail, "output the last part of files"); + +#[cfg(feature = "coreutils.tee")] +coreutils_builtin!(TeeCommand, uu_tee, "read from stdin and write to stdout and files"); + +#[cfg(feature = "coreutils.test")] +coreutils_builtin!(TestCommand, uu_test, "check file types and compare values (coreutils)"); + +#[cfg(feature = "coreutils.touch")] +coreutils_builtin!(TouchCommand, uu_touch, "change file timestamps"); + +#[cfg(feature = "coreutils.tr")] +coreutils_builtin!(TrCommand, uu_tr, "translate or delete characters"); + +#[cfg(feature = "coreutils.true")] +coreutils_builtin!(TrueCommand, uu_true, "do nothing, successfully"); + +#[cfg(feature = "coreutils.truncate")] +coreutils_builtin!(TruncateCommand, uu_truncate, "shrink or extend the size of a file"); + +#[cfg(feature = "coreutils.tsort")] +coreutils_builtin!(TsortCommand, uu_tsort, "perform topological sort"); + +#[cfg(feature = "coreutils.uname")] +coreutils_builtin!(UnameCommand, uu_uname, "print system information"); + +#[cfg(feature = "coreutils.unexpand")] +coreutils_builtin!(UnexpandCommand, uu_unexpand, "convert spaces to tabs"); + +#[cfg(feature = "coreutils.uniq")] +coreutils_builtin!(UniqCommand, uu_uniq, "report or omit repeated lines"); + +#[cfg(feature = "coreutils.unlink")] +coreutils_builtin!(UnlinkCommand, uu_unlink, "remove a file by calling unlink"); + +#[cfg(feature = "coreutils.vdir")] +coreutils_builtin!(VdirCommand, uu_vdir, "list directory contents (verbose)"); + +#[cfg(feature = "coreutils.wc")] +coreutils_builtin!(WcCommand, uu_wc, "print newline, word, and byte counts"); + +#[cfg(feature = "coreutils.whoami")] +coreutils_builtin!(WhoamiCommand, uu_whoami, "print effective userid"); + +#[cfg(feature = "coreutils.yes")] +coreutils_builtin!(YesCommand, uu_yes, "output a string repeatedly until killed"); + +// ── Public API ────────────────────────────────────────────────────────────── + +/// Returns the set of coreutils built-in commands enabled by feature flags. +#[allow(clippy::too_many_lines)] +pub fn coreutils_builtins() +-> HashMap> { + let mut m = HashMap::>::new(); + + register_coreutils_builtin!(m, "coreutils.arch", "arch", ArchCommand); + register_coreutils_builtin!(m, "coreutils.base32", "base32", Base32Command); + register_coreutils_builtin!(m, "coreutils.base64", "base64", Base64Command); + register_coreutils_builtin!(m, "coreutils.basename", "basename", BasenameCommand); + register_coreutils_builtin!(m, "coreutils.basenc", "basenc", BasencCommand); + register_coreutils_builtin!(m, "coreutils.cat", "cat", CatCommand); + register_coreutils_builtin!(m, "coreutils.cksum", "cksum", CksumCommand); + register_coreutils_builtin!(m, "coreutils.b2sum", "b2sum", B2sumCommand); + register_coreutils_builtin!(m, "coreutils.md5sum", "md5sum", Md5sumCommand); + register_coreutils_builtin!(m, "coreutils.sha1sum", "sha1sum", Sha1sumCommand); + register_coreutils_builtin!(m, "coreutils.sha224sum", "sha224sum", Sha224sumCommand); + register_coreutils_builtin!(m, "coreutils.sha256sum", "sha256sum", Sha256sumCommand); + register_coreutils_builtin!(m, "coreutils.sha384sum", "sha384sum", Sha384sumCommand); + register_coreutils_builtin!(m, "coreutils.sha512sum", "sha512sum", Sha512sumCommand); + register_coreutils_builtin!(m, "coreutils.comm", "comm", CommCommand); + register_coreutils_builtin!(m, "coreutils.cp", "cp", CpCommand); + register_coreutils_builtin!(m, "coreutils.csplit", "csplit", CsplitCommand); + register_coreutils_builtin!(m, "coreutils.cut", "cut", CutCommand); + register_coreutils_builtin!(m, "coreutils.date", "date", DateCommand); + register_coreutils_builtin!(m, "coreutils.dd", "dd", DdCommand); + register_coreutils_builtin!(m, "coreutils.df", "df", DfCommand); + register_coreutils_builtin!(m, "coreutils.dir", "dir", DirCommand); + register_coreutils_builtin!(m, "coreutils.dircolors", "dircolors", DircolorsCommand); + register_coreutils_builtin!(m, "coreutils.dirname", "dirname", DirnameCommand); + register_coreutils_builtin!(m, "coreutils.du", "du", DuCommand); + register_coreutils_builtin!(m, "coreutils.echo", "uecho", EchoCommand); + register_coreutils_builtin!(m, "coreutils.env", "env", EnvCommand); + register_coreutils_builtin!(m, "coreutils.expand", "expand", ExpandCommand); + register_coreutils_builtin!(m, "coreutils.expr", "expr", ExprCommand); + register_coreutils_builtin!(m, "coreutils.factor", "factor", FactorCommand); + register_coreutils_builtin!(m, "coreutils.false", "ufalse", FalseCommand); + register_coreutils_builtin!(m, "coreutils.fmt", "fmt", FmtCommand); + register_coreutils_builtin!(m, "coreutils.fold", "fold", FoldCommand); + register_coreutils_builtin!(m, "coreutils.head", "head", HeadCommand); + register_coreutils_builtin!(m, "coreutils.hostname", "hostname", HostnameCommand); + register_coreutils_builtin!(m, "coreutils.join", "join", JoinCommand); + register_coreutils_builtin!(m, "coreutils.link", "link", LinkCommand); + register_coreutils_builtin!(m, "coreutils.ln", "ln", LnCommand); + register_coreutils_builtin!(m, "coreutils.ls", "ls", LsCommand); + register_coreutils_builtin!(m, "coreutils.mkdir", "mkdir", MkdirCommand); + register_coreutils_builtin!(m, "coreutils.mktemp", "mktemp", MktempCommand); + register_coreutils_builtin!(m, "coreutils.more", "more", MoreCommand); + register_coreutils_builtin!(m, "coreutils.mv", "mv", MvCommand); + register_coreutils_builtin!(m, "coreutils.nl", "nl", NlCommand); + register_coreutils_builtin!(m, "coreutils.nproc", "nproc", NprocCommand); + register_coreutils_builtin!(m, "coreutils.numfmt", "numfmt", NumfmtCommand); + register_coreutils_builtin!(m, "coreutils.od", "od", OdCommand); + register_coreutils_builtin!(m, "coreutils.paste", "paste", PasteCommand); + register_coreutils_builtin!(m, "coreutils.pr", "pr", PrCommand); + register_coreutils_builtin!(m, "coreutils.printenv", "printenv", PrintenvCommand); + register_coreutils_builtin!(m, "coreutils.printf", "uprintf", PrintfCommand); + register_coreutils_builtin!(m, "coreutils.ptx", "ptx", PtxCommand); + register_coreutils_builtin!(m, "coreutils.pwd", "upwd", PwdCommand); + register_coreutils_builtin!(m, "coreutils.readlink", "readlink", ReadlinkCommand); + register_coreutils_builtin!(m, "coreutils.realpath", "realpath", RealpathCommand); + register_coreutils_builtin!(m, "coreutils.rm", "rm", RmCommand); + register_coreutils_builtin!(m, "coreutils.rmdir", "rmdir", RmdirCommand); + register_coreutils_builtin!(m, "coreutils.seq", "seq", SeqCommand); + register_coreutils_builtin!(m, "coreutils.shred", "shred", ShredCommand); + register_coreutils_builtin!(m, "coreutils.shuf", "shuf", ShufCommand); + register_coreutils_builtin!(m, "coreutils.sleep", "sleep", SleepCommand); + register_coreutils_builtin!(m, "coreutils.sort", "sort", SortCommand); + register_coreutils_builtin!(m, "coreutils.split", "split", SplitCommand); + register_coreutils_builtin!(m, "coreutils.sum", "sum", SumCommand); + register_coreutils_builtin!(m, "coreutils.sync", "sync", SyncCommand); + register_coreutils_builtin!(m, "coreutils.tac", "tac", TacCommand); + register_coreutils_builtin!(m, "coreutils.tail", "tail", TailCommand); + register_coreutils_builtin!(m, "coreutils.tee", "tee", TeeCommand); + register_coreutils_builtin!(m, "coreutils.test", "utest", TestCommand); + register_coreutils_builtin!(m, "coreutils.touch", "touch", TouchCommand); + register_coreutils_builtin!(m, "coreutils.tr", "tr", TrCommand); + register_coreutils_builtin!(m, "coreutils.true", "utrue", TrueCommand); + register_coreutils_builtin!(m, "coreutils.truncate", "truncate", TruncateCommand); + register_coreutils_builtin!(m, "coreutils.tsort", "tsort", TsortCommand); + register_coreutils_builtin!(m, "coreutils.uname", "uname", UnameCommand); + register_coreutils_builtin!(m, "coreutils.unexpand", "unexpand", UnexpandCommand); + register_coreutils_builtin!(m, "coreutils.uniq", "uniq", UniqCommand); + register_coreutils_builtin!(m, "coreutils.unlink", "unlink", UnlinkCommand); + register_coreutils_builtin!(m, "coreutils.vdir", "vdir", VdirCommand); + register_coreutils_builtin!(m, "coreutils.wc", "wc", WcCommand); + register_coreutils_builtin!(m, "coreutils.whoami", "whoami", WhoamiCommand); + register_coreutils_builtin!(m, "coreutils.yes", "yes", YesCommand); + + m +} + +/// Extension trait that simplifies adding coreutils builtins to a shell builder. +pub trait ShellBuilderExt { + /// Add coreutils builtins to the shell being built. + #[must_use] + fn coreutils_builtins(self) -> Self; +} + +impl ShellBuilderExt + for brush_core::ShellBuilder +{ + fn coreutils_builtins(self) -> Self { + self.builtins(crate::coreutils_builtins()) + } +} diff --git a/brush-shell/Cargo.toml b/brush-shell/Cargo.toml index d0412680d..bfa90bdca 100644 --- a/brush-shell/Cargo.toml +++ b/brush-shell/Cargo.toml @@ -60,6 +60,7 @@ experimental = [ "experimental-parser", ] experimental-builtins = ["dep:brush-experimental-builtins"] +coreutils-builtins = ["dep:brush-coreutils-builtins"] experimental-load = ["dep:serde_json", "brush-core/serde"] experimental-parser = [ "brush-core/experimental-parser", @@ -74,6 +75,7 @@ workspace = true brush-core = { version = "^0.4.0", path = "../brush-core" } brush-builtins = { version = "^0.1.0", path = "../brush-builtins" } brush-experimental-builtins = { version = "^0.1.0", path = "../brush-experimental-builtins", optional = true } +brush-coreutils-builtins = { version = "^0.1.0", path = "../brush-coreutils-builtins", optional = true } clap = { version = "4.5.57", features = ["derive", "env"] } color-print = "0.3.7" etcetera = "0.11.0" diff --git a/brush-shell/src/entry.rs b/brush-shell/src/entry.rs index 0dc573e67..c211b8c51 100644 --- a/brush-shell/src/entry.rs +++ b/brush-shell/src/entry.rs @@ -10,6 +10,8 @@ use crate::productinfo; use brush_builtins::ShellBuilderExt as _; #[cfg(feature = "experimental-builtins")] use brush_experimental_builtins::ShellBuilderExt as _; +#[cfg(feature = "coreutils-builtins")] +use brush_coreutils_builtins::ShellBuilderExt as _; use std::sync::LazyLock; use std::{path::Path, sync::Arc}; use tokio::sync::Mutex; @@ -378,6 +380,12 @@ fn instantiate_shell_from_file( shell.register_builtin(&builtin_name, builtin); } + // Add coreutils builtins (if enabled). + #[cfg(feature = "coreutils-builtins")] + for (builtin_name, builtin) in brush_coreutils_builtins::coreutils_builtins() { + shell.register_builtin(&builtin_name, builtin); + } + Ok(shell) } @@ -486,6 +494,10 @@ async fn instantiate_shell_from_args( #[cfg(feature = "experimental-builtins")] let shell = shell.experimental_builtins(); + // Add coreutils builtins (if enabled). + #[cfg(feature = "coreutils-builtins")] + let shell = shell.coreutils_builtins(); + // Build the shell. let mut shell = shell.build().await?; From 4db47162a79200c0b5cc19043615003e61244f62 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Sat, 28 Feb 2026 19:38:25 -0400 Subject: [PATCH 2/3] use uu crates --- Cargo.lock | 590 +++++++++++++++++----------- brush-coreutils-builtins/Cargo.toml | 164 ++++---- 2 files changed, 442 insertions(+), 312 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8066f40bd..03ef6e46b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -417,7 +416,7 @@ dependencies = [ "thiserror 2.0.18", "tokio", "tracing", - "uucore 0.6.0", + "uucore", ] [[package]] @@ -1208,7 +1207,7 @@ dependencies = [ "parking_lot", "rustix", "serde", - "signal-hook", + "signal-hook 0.3.18", "signal-hook-mio", "winapi", ] @@ -1701,12 +1700,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "fs_extra" version = "1.3.0" @@ -1952,7 +1945,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", + "foldhash", ] [[package]] @@ -1960,11 +1953,6 @@ name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] [[package]] name = "heck" @@ -2660,11 +2648,11 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" -version = "0.16.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.15.5", ] [[package]] @@ -2919,9 +2907,9 @@ dependencies = [ [[package]] name = "num-modular" -version = "0.6.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" dependencies = [ "num-bigint", "num-integer", @@ -2930,9 +2918,9 @@ dependencies = [ [[package]] name = "num-prime" -version = "0.5.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b285c575532a33ef6fdd3a57640d0b1c70e6ca48644d6df7bbd4b7a0cfbbb12d" +checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" dependencies = [ "bitvec", "either", @@ -3111,9 +3099,9 @@ dependencies = [ [[package]] name = "parse_datetime" -version = "0.14.0" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413775a7eac2261d2211a79d10ef275e5b6f7b527eec42ad09adce2ffa92b6e5" +checksum = "acea383beda9652270f3c9678d83aa58cbfc16880343cae0c0c8c7d6c0974132" dependencies = [ "jiff", "num-traits", @@ -3943,6 +3931,16 @@ dependencies = [ "signal-hook-registry", ] +[[package]] +name = "signal-hook" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b57709da74f9ff9f4a27dce9526eec25ca8407c45a7887243b031a58935fb8e" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-mio" version = "0.2.5" @@ -3951,7 +3949,7 @@ checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" dependencies = [ "libc", "mio", - "signal-hook", + "signal-hook 0.3.18", ] [[package]] @@ -4613,107 +4611,129 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uu_arch" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca136c7eda707accf4812f2fd1b74b10a3ba125aed409c9cb3c671d406a12eb3" dependencies = [ "clap", "fluent", "platform-info", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_b2sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a22430172832c275d9a19a5f2f3c80afeaba3a358990913f22a194174cee1c6" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_base32" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e870998ce844fc5cf9633f3d64c0fffb9b8096d830ec6a5580f63dc8524d1e7" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_base64" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d62850b45766fec959972955f9d39b8288fdef6ed0f66d1da79559cb41b25b4" dependencies = [ "clap", "fluent", "uu_base32", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_basename" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422ffe9b3bc11965f504a46a0e9e955daa35b0466c80deaf1c4e1649a77d8769" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_basenc" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3f87324f27a24ec7ed0683880bbc7b9bf56c04fecaf7d2b8346ffd5a9dffc85" dependencies = [ "clap", "fluent", "uu_base32", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_cat" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c23565c3db21711cf74bf8e2789c0d7da8a85a1b82530887e1d5d11efa026110" dependencies = [ "clap", "fluent", "memchr", "nix 0.30.1", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "winapi-util", "windows-sys 0.61.2", ] [[package]] name = "uu_checksum_common" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96ff3cf94b1904acf97cd7b6132cee627322ac7927d7f45f2189940e75df461" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_cksum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590b8edd4de172a108cd3a1acc134ac59a2a5bd8d5057404b3aad1d5d2281d9a" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_comm" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f8acd7c9875aec7393765af15666b2fe0494addc61e877ae388bad36aedbbe" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_cp" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19885072900bec2d63f0e94f73467d409bbe7b6644b5ab2475b2c728f725a9cb" dependencies = [ "clap", "filetime", @@ -4721,35 +4741,41 @@ dependencies = [ "indicatif", "libc", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "walkdir", ] [[package]] name = "uu_csplit" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838a6b163e503736b898a088096d95c3c5d55052c95c16b66bb0ef85f82a1bd1" dependencies = [ "clap", "fluent", "regex", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_cut" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e2276c8c30f141ab2e52d8ff5afb65bedb46beb3b155759937f2b8dd19fdea" dependencies = [ "bstr", "clap", "fluent", "memchr", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_date" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b479a3c57bcb26c7bbccafb12181616fdc5a854add70fa310dba07b1aaa837e" dependencies = [ "clap", "fluent", @@ -4759,110 +4785,129 @@ dependencies = [ "jiff-icu", "nix 0.30.1", "parse_datetime", - "regex", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_dd" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feed97e20c3aa2b8b5712b160f7319cbf8c994fb554cf0fe89da47c3e9ce885" dependencies = [ "clap", "fluent", "gcd", "libc", "nix 0.30.1", + "signal-hook 0.4.3", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_df" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5f4996f12a768421e264aca4beb12abc30bb16815a3206568cc243d00219918" dependencies = [ "clap", "fluent", "thiserror 2.0.18", "unicode-width 0.2.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_dir" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c2154c9a529fc8d18c067591f0e48ac448a5e82408945266ca8ca90f94c67da" dependencies = [ "clap", "uu_ls", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_dircolors" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335414a2229680cdc06c2cce2109d7c6dbe82cb2b9e8645161f1678ddddddb2e" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_dirname" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15e4d8560c96b3bcdeeb2cc96800f6098797a2ce667be6cf2d3d8211e47f10b" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_du" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19850aaf37330ce61006cd1c289ae6c21acd43d6b2b8aeeb94fad48260d5c15b" dependencies = [ "clap", "fluent", "glob", - "rustc-hash", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_echo" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b10c8ed70a960e1e7afcaf783f984f16768c944414a81ae43b1a842a5a3ce30" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_env" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37a220e7e0ee051091409fa1d111087e53f19d12874c0896249cd9ab64330fb2" dependencies = [ "clap", "fluent", "nix 0.30.1", "rust-ini", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_expand" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c02f814b070799d5ac509bbfefd3c2adb97798a318f55f0983401a56b6798f" dependencies = [ "clap", "fluent", "thiserror 2.0.18", "unicode-width 0.2.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_expr" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afcc9162f9abc27a20674a5c0f6d75eaccfcecd226ad6fffd146262340896f0" dependencies = [ "clap", "fluent", @@ -4870,232 +4915,272 @@ dependencies = [ "num-traits", "onig", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_factor" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f15739fdf5a3a79cb6a195f1522ec156d7a4130ee56ad0d528ff3b71ca1d5fe" dependencies = [ "clap", "fluent", "num-bigint", "num-prime", "num-traits", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_false" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e00708cc8f8ca60b3289617119bf59544b27a4ad51caf55fd3cfe7570f807c" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_fmt" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98557e564f36cb27c75f41597078caf513141f5ad5ce815752ea344088df3ac4" dependencies = [ "clap", "fluent", "thiserror 2.0.18", "unicode-width 0.2.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_fold" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f6ba3d1ee677ab1007bba5f08c65490161a770081897bff4795d02f65e0192" dependencies = [ "clap", "fluent", "unicode-width 0.2.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_head" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e245f77c4c1714c383cbca97fea9091d62cbbaf5db801aef83b6bc6653f0a401" dependencies = [ "clap", "fluent", "memchr", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_hostname" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e3f241f72c5c222fb27b15b267e84ae22b265d954eb35e4765f773cc25291e" dependencies = [ "clap", "dns-lookup", "fluent", "hostname", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_join" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97f4c51783904da5cfbb0f91ab425b57a9ae32199e0c0375b7eb5c8ad7f3d2b6" dependencies = [ "clap", "fluent", "memchr", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_link" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd8c72719bdf43a9d097451b7035e6958c1ecff41ee078d52bb49a7c4466382b" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_ln" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a59f2b9756315daa9c7b74925c677e9dbb81cbc7bd030872ca613e2a01e2f30c" dependencies = [ "clap", "fluent", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_ls" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5ef66a1358b33150540090387d434b6fb67739d2e936b78078a906babddb" dependencies = [ "ansi-width", "clap", "fluent", + "fnv", "glob", "hostname", "lscolors", - "rustc-hash", "terminal_size", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "uutils_term_grid", ] [[package]] name = "uu_md5sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc4a90a6fdeb0ca36caf5cf3fe3ee9be2f7207a030e919475120abcb0b61549" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_mkdir" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd1198106d4ebf867fe15e31c0396ad5c775070ccd4598f233d32b1eb8c1e11" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_mktemp" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9361746c44b4888ea45c33e1a907d93c74b42b8cab9cf3383d30a2380e3330f" dependencies = [ "clap", "fluent", "rand 0.9.2", "tempfile", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_more" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509024afc473908eda74009dfa9f5fe92bf43a1ed9e6e42ceb06d9827d977413" dependencies = [ "clap", "crossterm", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_mv" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a89e71fea435be9ec14cc591fd30541433d043540b0c884ad7f3d56a1974d6" dependencies = [ "clap", "fluent", "fs_extra", "indicatif", "libc", - "rustc-hash", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_nl" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29cb2555d9ae33fbd990e288fc439305b5df8eed8d5d9819ccf0260db4728b20" dependencies = [ "clap", "fluent", - "itoa", "regex", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_nproc" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baad98c9eeeafb048b84d9b117c2fbfb62673c5eb7d2041380d441a02d6adf18" dependencies = [ "clap", "fluent", "libc", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_numfmt" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494840f440ff3be77b8fb7754d2e2d57037aa683d6de23cd5781315c7748a53d" dependencies = [ "clap", "fluent", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_od" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd806a24cba10f55e0669ebc1f9293e88880cf3893f28b914d233b1365c636db" dependencies = [ "byteorder", "clap", "fluent", "half", "libc", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_paste" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc9a75a74608184ab5d592673bf80a40466349cf2c9cc670d898ff03befd820" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_pr" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53d1b9418247ca38c7df8cd0ecf2a6b96064629124b0900c5a262766829ab1b" dependencies = [ "clap", "fluent", @@ -5103,91 +5188,109 @@ dependencies = [ "memchr", "regex", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_printenv" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed6cedc6ecf63752657117955c0bc79915bb2ce18ab69877fa0e44f2928aa51" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_printf" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ddc720b181cfec844b8a5adfc26e29381a86f5207371af393a513508b0d75a" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_ptx" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "431887aa07b0159d8dc3d6d289e82d1cad083ac3d2037b0960de9076413d6f31" dependencies = [ "clap", "fluent", "regex", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_pwd" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ec79551312b1d17bf1fa8965751e3ee059a17f0bcf5284a8e5673af2a6d8ed" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_readlink" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc5dafab0132a5dec18e1e55ff88273ddaadb4379669240a7be237a9653c5a2" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_realpath" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064b5f4658bb47f7140a461c84a52d5021caa378893ec3d0f1d9f8836816ebc1" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_rm" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c23ccf8b7e1ae44c9287f7d69faa1230c3b28f176745f6d87b76dc5aa9450c1" dependencies = [ "clap", "fluent", "indicatif", "libc", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_rmdir" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93462b105aa7d2d969b5575d0da3a2ab84e6bf97107743180ad2bb8d7bf8eb92" dependencies = [ "clap", "fluent", "libc", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_seq" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00c994f61b854e6d70ac07e3b516af22135c436a8134bb2d7f0dfda9c09bf92c" dependencies = [ "bigdecimal", "clap", @@ -5195,104 +5298,122 @@ dependencies = [ "num-bigint", "num-traits", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sha1sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee0c3d382d0eb56145abe5832646ff28bab9ac60378bf7b37f524ee1078fbb0e" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sha224sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c4e9fd722763ee1db1c016320d56ff48f18d48e4e6b49b623d8d34ba4186aa" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sha256sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b73bdc94352138fb43a7380b39fc5afdbecf4e341510fc4922b27d45d4afe6e" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sha384sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8b5b7b8af324e63608d38a95810e25f63639c39c2a7806097849ebfa1f5f88b" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sha512sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b5419b033a5a78db268a9447b480577afd4ecdd9b68e5eadda1d594700d946" dependencies = [ "clap", "fluent", "uu_checksum_common", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_shred" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eced6653e95d690948ea6a954b23dbd209a86ebd9fff886ff270391131531fee" dependencies = [ "clap", "fluent", "libc", "rand 0.9.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_shuf" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21877cbb36771169b627d8d9f558a73c8cf44c47fcd3147b1de70003061e8016" dependencies = [ "clap", "fluent", "itoa", "rand 0.9.2", "rand_chacha 0.9.0", - "rustc-hash", + "rand_core 0.9.5", "sha3", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sleep" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42627f81fc0c9813180b8f676dd43246a8b5f12d90aef75c5866db7ed16620fc" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sort" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60aeb5f6aa835ad3dc91e1747474b76eb8f7b09430bca1e35da6f52f79c2deaa" dependencies = [ - "ahash", "bigdecimal", "binary-heap-plus", "clap", "compare", "ctrlc", "fluent", + "fnv", "itertools 0.14.0", "memchr", "nix 0.30.1", @@ -5301,43 +5422,51 @@ dependencies = [ "self_cell", "tempfile", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_split" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8accf976b404b107e36e3fcf52fed88943d4ec4e92e684e76e8a7b572a8d43dd" dependencies = [ "clap", "fluent", "memchr", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sum" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a51f1859693362d9a68e7f2be19ac812d3033e829d06cb40b4f4eb6af91e3528" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_sync" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f14649240318c1a0df5decd865e9b0c6b2a90fe7805736db8ba169e7b5eba45" dependencies = [ "clap", "fluent", "nix 0.30.1", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_tac" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ed7ec7b980d18d5acc047156176bf9b34e263776bf20673dfefba7f41a37e6" dependencies = [ "clap", "fluent", @@ -5347,12 +5476,14 @@ dependencies = [ "regex", "tempfile", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_tail" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7401f7277a111f1d89a138363bb210da455b8374015c087b0fc746bec3d443" dependencies = [ "clap", "fluent", @@ -5361,33 +5492,39 @@ dependencies = [ "nix 0.30.1", "notify", "same-file", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_tee" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e21a2511471e0d99be65010a5f54813c0af2a28c4eeb8682c2340e2867502dee" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_test" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de9509e9832337e6ee6361b7b698a6078f09632642bb6c140400b5846d9962ea" dependencies = [ "clap", "fluent", "libc", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_touch" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bced62a93ef672b5601ebba3a2b102b04db7ae1fdd16cbf2bd398e7768216474" dependencies = [ "clap", "filetime", @@ -5395,102 +5532,121 @@ dependencies = [ "jiff", "parse_datetime", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_tr" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e4b54dd084aa8ae8c48928052e16d1513270285d8cbb65b41b1c93f2ec20e5" dependencies = [ "bytecount", "clap", "fluent", "nom 8.0.0", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_true" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f94aabd7670269f5dd03f40c20416d80c0cc810b743f1d3efe200cee617f521" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_truncate" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5140ce80f2ff1ea0f8c08374d631f4d3c94fc4d6f399795b0642ee065f799668" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_tsort" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd1ef7eb23dc2cab2a622dc8de1810494dae7b4fd68111901360f6d0c430a738" dependencies = [ "clap", "fluent", "nix 0.30.1", - "rustc-hash", "string-interner", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_uname" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8bd3abb201d672df3a5da52bf0c6a185ab74f2f367c476dc9f5757ab7f4af3" dependencies = [ "clap", "fluent", "platform-info", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_unexpand" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ef6f119687794aa6a9c1cc06a623c432f1b2f6c834073a377f20c99410d8a9" dependencies = [ "clap", "fluent", "thiserror 2.0.18", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_uniq" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b81940bcaf0f5ff45748ef2cb6187b498ed23cf1fd7ce41f5868e1f098409b14" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_unlink" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c9642cce2b2d6def96e3a0e92d2829a205adb2e3bfbcce1e38351adfd64561f" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_vdir" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575a63b13f644799af00756337d0a824d600b5dad6332240da845793b35a70e9" dependencies = [ "clap", "uu_ls", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_wc" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98e3930afb6dcebdc444f889c3dedb026ffec5f8512b8c6e9f85a274fb030739" dependencies = [ "bytecount", "clap", @@ -5499,27 +5655,31 @@ dependencies = [ "nix 0.30.1", "thiserror 2.0.18", "unicode-width 0.2.2", - "uucore 0.7.0", + "uucore", ] [[package]] name = "uu_whoami" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5e3381a52672795ecdf34f37fc94c0d616cf5959a6218e52282e04a6ff2cd1" dependencies = [ "clap", "fluent", - "uucore 0.7.0", + "uucore", "windows-sys 0.61.2", ] [[package]] name = "uu_yes" -version = "0.7.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37221acdd26923509a37f1e9138b057f27a01ccc15a4cbfe184c545c1ab72cb5" dependencies = [ "clap", "fluent", "itertools 0.14.0", - "uucore 0.7.0", + "uucore", ] [[package]] @@ -5527,27 +5687,6 @@ name = "uucore" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b157ba598d7f7ed06f6dbc62999edb9d730b4d3fb58e503d8ad6d5fbe1e04391" -dependencies = [ - "bigdecimal", - "clap", - "fluent", - "fluent-bundle", - "fluent-syntax", - "icu_locale", - "itertools 0.14.0", - "nix 0.30.1", - "num-traits", - "os_display", - "thiserror 2.0.18", - "unic-langid", - "unit-prefix", - "uucore_procs 0.6.0", - "wild", -] - -[[package]] -name = "uucore" -version = "0.7.0" dependencies = [ "base64-simd", "bigdecimal", @@ -5581,7 +5720,6 @@ dependencies = [ "num-traits", "os_display", "procfs", - "rustc-hash", "sha1", "sha2", "sha3", @@ -5589,7 +5727,7 @@ dependencies = [ "thiserror 2.0.18", "unic-langid", "unit-prefix", - "uucore_procs 0.7.0", + "uucore_procs", "walkdir", "wild", "winapi-util", @@ -5608,14 +5746,6 @@ dependencies = [ "quote", ] -[[package]] -name = "uucore_procs" -version = "0.7.0" -dependencies = [ - "proc-macro2", - "quote", -] - [[package]] name = "uuid" version = "1.21.0" diff --git a/brush-coreutils-builtins/Cargo.toml b/brush-coreutils-builtins/Cargo.toml index 12851466d..cb097f9cb 100644 --- a/brush-coreutils-builtins/Cargo.toml +++ b/brush-coreutils-builtins/Cargo.toml @@ -190,85 +190,85 @@ workspace = true [dependencies] brush-core = { version = "^0.4.0", path = "../brush-core" } -uu_arch= { path = "../../coreutils/src/uu/arch", optional = true } -uu_base32 = { path = "../../coreutils/src/uu/base32", optional = true } -uu_base64 = { path = "../../coreutils/src/uu/base64", optional = true } -uu_basename = { path = "../../coreutils/src/uu/basename", optional = true } -uu_basenc = { path = "../../coreutils/src/uu/basenc", optional = true } -uu_cat = { path = "../../coreutils/src/uu/cat", optional = true } -uu_cksum = { path = "../../coreutils/src/uu/cksum", optional = true } -uu_b2sum = { path = "../../coreutils/src/uu/b2sum", optional = true } -uu_md5sum = { path = "../../coreutils/src/uu/md5sum", optional = true } -uu_sha1sum = { path = "../../coreutils/src/uu/sha1sum", optional = true } -uu_sha224sum = { path = "../../coreutils/src/uu/sha224sum", optional = true } -uu_sha256sum = { path = "../../coreutils/src/uu/sha256sum", optional = true } -uu_sha384sum = { path = "../../coreutils/src/uu/sha384sum", optional = true } -uu_sha512sum = { path = "../../coreutils/src/uu/sha512sum", optional = true } -uu_comm = { path = "../../coreutils/src/uu/comm", optional = true } -uu_cp = { path = "../../coreutils/src/uu/cp", optional = true } -uu_csplit = { path = "../../coreutils/src/uu/csplit", optional = true } -uu_cut = { path = "../../coreutils/src/uu/cut", optional = true } -uu_date = { path = "../../coreutils/src/uu/date", optional = true } -uu_dd = { path = "../../coreutils/src/uu/dd", optional = true } -uu_df = { path = "../../coreutils/src/uu/df", optional = true } -uu_dir = { path = "../../coreutils/src/uu/dir", optional = true } -uu_dircolors = { path = "../../coreutils/src/uu/dircolors", optional = true } -uu_dirname = { path = "../../coreutils/src/uu/dirname", optional = true } -uu_du = { path = "../../coreutils/src/uu/du", optional = true } -uu_echo = { path = "../../coreutils/src/uu/echo", optional = true } -uu_env = { path = "../../coreutils/src/uu/env", optional = true } -uu_expand = { path = "../../coreutils/src/uu/expand", optional = true } -uu_expr = { path = "../../coreutils/src/uu/expr", optional = true } -uu_factor = { path = "../../coreutils/src/uu/factor", optional = true } -uu_false = { path = "../../coreutils/src/uu/false", optional = true } -uu_fmt = { path = "../../coreutils/src/uu/fmt", optional = true } -uu_fold = { path = "../../coreutils/src/uu/fold", optional = true } -uu_head = { path = "../../coreutils/src/uu/head", optional = true } -uu_hostname = { path = "../../coreutils/src/uu/hostname", optional = true } -uu_join = { path = "../../coreutils/src/uu/join", optional = true } -uu_link = { path = "../../coreutils/src/uu/link", optional = true } -uu_ln = { path = "../../coreutils/src/uu/ln", optional = true } -uu_ls = { path = "../../coreutils/src/uu/ls", optional = true } -uu_mkdir = { path = "../../coreutils/src/uu/mkdir", optional = true } -uu_mktemp = { path = "../../coreutils/src/uu/mktemp", optional = true } -uu_more = { path = "../../coreutils/src/uu/more", optional = true } -uu_mv = { path = "../../coreutils/src/uu/mv", optional = true } -uu_nl = { path = "../../coreutils/src/uu/nl", optional = true } -uu_nproc = { path = "../../coreutils/src/uu/nproc", optional = true } -uu_numfmt = { path = "../../coreutils/src/uu/numfmt", optional = true } -uu_od = { path = "../../coreutils/src/uu/od", optional = true } -uu_paste = { path = "../../coreutils/src/uu/paste", optional = true } -uu_pr = { path = "../../coreutils/src/uu/pr", optional = true } -uu_printenv = { path = "../../coreutils/src/uu/printenv", optional = true } -uu_printf = { path = "../../coreutils/src/uu/printf", optional = true } -uu_ptx = { path = "../../coreutils/src/uu/ptx", optional = true } -uu_pwd = { path = "../../coreutils/src/uu/pwd", optional = true } -uu_readlink = { path = "../../coreutils/src/uu/readlink", optional = true } -uu_realpath = { path = "../../coreutils/src/uu/realpath", optional = true } -uu_rm = { path = "../../coreutils/src/uu/rm", optional = true } -uu_rmdir = { path = "../../coreutils/src/uu/rmdir", optional = true } -uu_seq = { path = "../../coreutils/src/uu/seq", optional = true } -uu_shred = { path = "../../coreutils/src/uu/shred", optional = true } -uu_shuf = { path = "../../coreutils/src/uu/shuf", optional = true } -uu_sleep = { path = "../../coreutils/src/uu/sleep", optional = true } -uu_sort = { path = "../../coreutils/src/uu/sort", optional = true } -uu_split = { path = "../../coreutils/src/uu/split", optional = true } -uu_sum = { path = "../../coreutils/src/uu/sum", optional = true } -uu_sync = { path = "../../coreutils/src/uu/sync", optional = true } -uu_tac = { path = "../../coreutils/src/uu/tac", optional = true } -uu_tail = { path = "../../coreutils/src/uu/tail", optional = true } -uu_tee = { path = "../../coreutils/src/uu/tee", optional = true } -uu_test = { path = "../../coreutils/src/uu/test", optional = true } -uu_touch = { path = "../../coreutils/src/uu/touch", optional = true } -uu_tr = { path = "../../coreutils/src/uu/tr", optional = true } -uu_true = { path = "../../coreutils/src/uu/true", optional = true } -uu_truncate = { path = "../../coreutils/src/uu/truncate", optional = true } -uu_tsort = { path = "../../coreutils/src/uu/tsort", optional = true } -uu_uname = { path = "../../coreutils/src/uu/uname", optional = true } -uu_unexpand = { path = "../../coreutils/src/uu/unexpand", optional = true } -uu_uniq = { path = "../../coreutils/src/uu/uniq", optional = true } -uu_unlink = { path = "../../coreutils/src/uu/unlink", optional = true } -uu_vdir = { path = "../../coreutils/src/uu/vdir", optional = true } -uu_wc = { path = "../../coreutils/src/uu/wc", optional = true } -uu_whoami = { path = "../../coreutils/src/uu/whoami", optional = true } -uu_yes = { path = "../../coreutils/src/uu/yes", optional = true } +uu_arch = { version = "0.6.0", optional = true } +uu_base32 = { version = "0.6.0", optional = true } +uu_base64 = { version = "0.6.0", optional = true } +uu_basename = { version = "0.6.0", optional = true } +uu_basenc = { version = "0.6.0", optional = true } +uu_cat = { version = "0.6.0", optional = true } +uu_cksum = { version = "0.6.0", optional = true } +uu_b2sum = { version = "0.6.0", optional = true } +uu_md5sum = { version = "0.6.0", optional = true } +uu_sha1sum = { version = "0.6.0", optional = true } +uu_sha224sum = { version = "0.6.0", optional = true } +uu_sha256sum = { version = "0.6.0", optional = true } +uu_sha384sum = { version = "0.6.0", optional = true } +uu_sha512sum = { version = "0.6.0", optional = true } +uu_comm = { version = "0.6.0", optional = true } +uu_cp = { version = "0.6.0", optional = true } +uu_csplit = { version = "0.6.0", optional = true } +uu_cut = { version = "0.6.0", optional = true } +uu_date = { version = "0.6.0", optional = true } +uu_dd = { version = "0.6.0", optional = true } +uu_df = { version = "0.6.0", optional = true } +uu_dir = { version = "0.6.0", optional = true } +uu_dircolors = { version = "0.6.0", optional = true } +uu_dirname = { version = "0.6.0", optional = true } +uu_du = { version = "0.6.0", optional = true } +uu_echo = { version = "0.6.0", optional = true } +uu_env = { version = "0.6.0", optional = true } +uu_expand = { version = "0.6.0", optional = true } +uu_expr = { version = "0.6.0", optional = true } +uu_factor = { version = "0.6.0", optional = true } +uu_false = { version = "0.6.0", optional = true } +uu_fmt = { version = "0.6.0", optional = true } +uu_fold = { version = "0.6.0", optional = true } +uu_head = { version = "0.6.0", optional = true } +uu_hostname = { version = "0.6.0", optional = true } +uu_join = { version = "0.6.0", optional = true } +uu_link = { version = "0.6.0", optional = true } +uu_ln = { version = "0.6.0", optional = true } +uu_ls = { version = "0.6.0", optional = true } +uu_mkdir = { version = "0.6.0", optional = true } +uu_mktemp = { version = "0.6.0", optional = true } +uu_more = { version = "0.6.0", optional = true } +uu_mv = { version = "0.6.0", optional = true } +uu_nl = { version = "0.6.0", optional = true } +uu_nproc = { version = "0.6.0", optional = true } +uu_numfmt = { version = "0.6.0", optional = true } +uu_od = { version = "0.6.0", optional = true } +uu_paste = { version = "0.6.0", optional = true } +uu_pr = { version = "0.6.0", optional = true } +uu_printenv = { version = "0.6.0", optional = true } +uu_printf = { version = "0.6.0", optional = true } +uu_ptx = { version = "0.6.0", optional = true } +uu_pwd = { version = "0.6.0", optional = true } +uu_readlink = { version = "0.6.0", optional = true } +uu_realpath = { version = "0.6.0", optional = true } +uu_rm = { version = "0.6.0", optional = true } +uu_rmdir = { version = "0.6.0", optional = true } +uu_seq = { version = "0.6.0", optional = true } +uu_shred = { version = "0.6.0", optional = true } +uu_shuf = { version = "0.6.0", optional = true } +uu_sleep = { version = "0.6.0", optional = true } +uu_sort = { version = "0.6.0", optional = true } +uu_split = { version = "0.6.0", optional = true } +uu_sum = { version = "0.6.0", optional = true } +uu_sync = { version = "0.6.0", optional = true } +uu_tac = { version = "0.6.0", optional = true } +uu_tail = { version = "0.6.0", optional = true } +uu_tee = { version = "0.6.0", optional = true } +uu_test = { version = "0.6.0", optional = true } +uu_touch = { version = "0.6.0", optional = true } +uu_tr = { version = "0.6.0", optional = true } +uu_true = { version = "0.6.0", optional = true } +uu_truncate = { version = "0.6.0", optional = true } +uu_tsort = { version = "0.6.0", optional = true } +uu_uname = { version = "0.6.0", optional = true } +uu_unexpand = { version = "0.6.0", optional = true } +uu_uniq = { version = "0.6.0", optional = true } +uu_unlink = { version = "0.6.0", optional = true } +uu_vdir = { version = "0.6.0", optional = true } +uu_wc = { version = "0.6.0", optional = true } +uu_whoami = { version = "0.6.0", optional = true } +uu_yes = { version = "0.6.0", optional = true } From b160c91cf8c8e33f84d287f55a520632b95c67c7 Mon Sep 17 00:00:00 2001 From: Cameron Taggart Date: Sun, 1 Mar 2026 22:25:05 -0400 Subject: [PATCH 3/3] Dockerfile for brush with coreutils-builtins --- .dockerignore | 2 ++ Dockerfile.azurelinux | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile.azurelinux diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..3ea08526b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +target/ +.git/ diff --git a/Dockerfile.azurelinux b/Dockerfile.azurelinux new file mode 100644 index 000000000..0cf560238 --- /dev/null +++ b/Dockerfile.azurelinux @@ -0,0 +1,34 @@ +# ----- Stage 1: Build ----- +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS builder + +# Install build dependencies and Rust toolchain via tdnf +RUN tdnf update -y && \ + tdnf install -y \ + rust \ + cargo \ + ca-certificates \ + gcc \ + binutils \ + glibc-devel \ + kernel-headers \ + ncurses-term \ + && tdnf clean all + +# Copy source +WORKDIR /src +COPY . . + +# Build release binary (statically links as much as possible via LTO + strip) +RUN cargo build --release --package brush-shell --features brush-shell/coreutils-builtins + +# ----- Stage 2: Runtime (distroless) ----- +FROM mcr.microsoft.com/azurelinux/distroless/base:3.0 + +# Copy terminfo database from builder for interactive terminal support. +# Distroless has no package manager, so we copy from the builder stage +# where ncurses-term was installed as a build dependency. +COPY --from=builder /usr/share/terminfo /usr/share/terminfo + +# Copy the built binary +COPY --from=builder /src/target/release/brush /usr/local/bin/brush +ENTRYPOINT ["brush"]