update nushell to use coreutils v0.1.0 crates (#15896)

This commit is contained in:
Darren Schroeder 2025-06-05 15:59:34 -05:00 committed by GitHub
parent 21d949207f
commit b886fd364c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 226 additions and 60 deletions

View File

@ -30,4 +30,10 @@ rustflags = ["-C", "link-args=-stack:10000000", "-C", "target-feature=+crt-stati
[target.aarch64-apple-darwin]
# We can guarantee that this target will always run on a CPU with _at least_
# these capabilities, so let's optimize for them
rustflags = ["-Ctarget-cpu=apple-m1"]
rustflags = ["-Ctarget-cpu=apple-m1"]
# This is required for uutils/coreutils version 0.1.0 and later
# It looks like this is what they use to name their executable
# https://github.com/uutils/coreutils/blob/61bd11a55118458704c4cbbf4e628cd657238d3e/src/uucore/src/lib/lib.rs#L201-L218
[env]
PROJECT_NAME_FOR_VERSION_STRING = "nushell"

238
Cargo.lock generated
View File

@ -702,6 +702,19 @@ dependencies = [
"vsimd",
]
[[package]]
name = "bigdecimal"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a22f228ab7a1b23027ccc6c350b72868017af7ea8356fbdf19f8d991c690013"
dependencies = [
"autocfg",
"libm",
"num-bigint",
"num-integer",
"num-traits",
]
[[package]]
name = "bincode"
version = "1.3.3"
@ -720,7 +733,7 @@ dependencies = [
"bitflags 2.6.0",
"cexpr",
"clang-sys",
"itertools 0.11.0",
"itertools 0.13.0",
"proc-macro2",
"quote",
"regex",
@ -985,9 +998,9 @@ dependencies = [
[[package]]
name = "chrono"
version = "0.4.39"
version = "0.4.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825"
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
dependencies = [
"android-tzdata",
"iana-time-zone",
@ -996,7 +1009,7 @@ dependencies = [
"pure-rust-locales",
"serde",
"wasm-bindgen",
"windows-targets 0.52.6",
"windows-link",
]
[[package]]
@ -1938,6 +1951,51 @@ dependencies = [
"num-traits",
]
[[package]]
name = "fluent"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477"
dependencies = [
"fluent-bundle",
"unic-langid",
]
[[package]]
name = "fluent-bundle"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4"
dependencies = [
"fluent-langneg",
"fluent-syntax",
"intl-memoizer",
"intl_pluralrules",
"rustc-hash 2.1.0",
"self_cell",
"smallvec",
"unic-langid",
]
[[package]]
name = "fluent-langneg"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94"
dependencies = [
"unic-langid",
]
[[package]]
name = "fluent-syntax"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198"
dependencies = [
"memchr",
"thiserror 2.0.12",
]
[[package]]
name = "fluent-uri"
version = "0.1.4"
@ -2622,7 +2680,7 @@ dependencies = [
"displaydoc",
"yoke",
"zerofrom",
"zerovec",
"zerovec 0.10.4",
]
[[package]]
@ -2633,9 +2691,9 @@ checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
dependencies = [
"displaydoc",
"litemap",
"tinystr",
"tinystr 0.7.6",
"writeable",
"zerovec",
"zerovec 0.10.4",
]
[[package]]
@ -2648,8 +2706,8 @@ dependencies = [
"icu_locid",
"icu_locid_transform_data",
"icu_provider",
"tinystr",
"zerovec",
"tinystr 0.7.6",
"zerovec 0.10.4",
]
[[package]]
@ -2673,7 +2731,7 @@ dependencies = [
"utf16_iter",
"utf8_iter",
"write16",
"zerovec",
"zerovec 0.10.4",
]
[[package]]
@ -2693,8 +2751,8 @@ dependencies = [
"icu_locid_transform",
"icu_properties_data",
"icu_provider",
"tinystr",
"zerovec",
"tinystr 0.7.6",
"zerovec 0.10.4",
]
[[package]]
@ -2713,11 +2771,11 @@ dependencies = [
"icu_locid",
"icu_provider_macros",
"stable_deref_trait",
"tinystr",
"tinystr 0.7.6",
"writeable",
"yoke",
"zerofrom",
"zerovec",
"zerovec 0.10.4",
]
[[package]]
@ -2834,6 +2892,25 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "intl-memoizer"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f"
dependencies = [
"type-map",
"unic-langid",
]
[[package]]
name = "intl_pluralrules"
version = "7.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
dependencies = [
"unic-langid",
]
[[package]]
name = "inventory"
version = "0.3.15"
@ -2983,9 +3060,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.168"
version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d"
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]]
name = "libflate"
@ -3477,6 +3554,18 @@ dependencies = [
"libc",
]
[[package]]
name = "nix"
version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [
"bitflags 2.6.0",
"cfg-if",
"cfg_aliases 0.2.1",
"libc",
]
[[package]]
name = "nom"
version = "7.1.3"
@ -4733,9 +4822,9 @@ dependencies = [
[[package]]
name = "parse_datetime"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bffd1156cebf13f681d7769924d3edfb9d9d71ba206a8d8e8e7eb9df4f4b1e7"
checksum = "2fd3830b49ee3a0dcc8fdfadc68c6354c97d00101ac1cac5b2eee25d35c42066"
dependencies = [
"chrono",
"nom 8.0.0",
@ -6602,6 +6691,12 @@ dependencies = [
"smallvec",
]
[[package]]
name = "self_cell"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749"
[[package]]
name = "semver"
version = "1.0.23"
@ -7344,7 +7439,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
dependencies = [
"displaydoc",
"zerovec",
"zerovec 0.10.4",
]
[[package]]
name = "tinystr"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
dependencies = [
"displaydoc",
"zerovec 0.11.2",
]
[[package]]
@ -7558,6 +7663,15 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "type-map"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90"
dependencies = [
"rustc-hash 2.1.0",
]
[[package]]
name = "typed-arena"
version = "1.7.0"
@ -7641,6 +7755,24 @@ dependencies = [
"thiserror 1.0.69",
]
[[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 0.8.1",
]
[[package]]
name = "unicase"
version = "2.8.0"
@ -7802,14 +7934,15 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uu_cp"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf2f3906b7896f79519055d36760095577373e40ec244f46b259f502a4a91147"
checksum = "4f03348f1609e6646274195ba7674c20ce3ff18a358649516fdbb4ad2645df41"
dependencies = [
"clap",
"filetime",
"indicatif",
"libc",
"linux-raw-sys 0.9.4",
"quick-error 2.0.1",
"uucore",
"walkdir",
@ -7818,9 +7951,9 @@ dependencies = [
[[package]]
name = "uu_mkdir"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5be556a5d852f55b92bba460d7a97030a340ba4a3f4c510a8d0a893bfaf48356"
checksum = "d3f88c0d90729946efdd5e28bff263da25b08c632aecee8b5797059a23374525"
dependencies = [
"clap",
"uucore",
@ -7828,9 +7961,9 @@ dependencies = [
[[package]]
name = "uu_mktemp"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5305fcf4f7f480e7438e19ff433ae60dea886bd528f87543029eb6b95d351afc"
checksum = "1a13a85cf62ae1292d5cfc21de90a33bb853ade4151ead38e022ce8b610d3ee5"
dependencies = [
"clap",
"rand 0.9.0",
@ -7841,9 +7974,9 @@ dependencies = [
[[package]]
name = "uu_mv"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3be214b96554e4f7aa079b26c86c3ecf1b9ea15023ca2ec62d608273d12c7049"
checksum = "2a627a8ca00422f5341ca89d4c1fd352622cdab7dd4070a675616474ee37b351"
dependencies = [
"clap",
"fs_extra",
@ -7856,9 +7989,9 @@ dependencies = [
[[package]]
name = "uu_touch"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e58581a0245de8e3ef75b115ab29592cfb60d4851149d4951604601d14ea420"
checksum = "60e075c2a3644470352ec759be520febb1efb5fb8e448f05a0d2045d469f0e7b"
dependencies = [
"chrono",
"clap",
@ -7871,9 +8004,9 @@ dependencies = [
[[package]]
name = "uu_uname"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "324d96a21da91a81be334206ab65aad16d164d34cddeb640e1c56cd8d1854dd4"
checksum = "419f77c20ae220ee3fdf663de0600f954b5cc4f8b23e442192be73a1b45cfd03"
dependencies = [
"clap",
"platform-info",
@ -7882,32 +8015,34 @@ dependencies = [
[[package]]
name = "uu_whoami"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bee254de8b172a5978f12fe6cd9d4f2b60ea9ef1e37f0cb53bfee2c993b3e96a"
checksum = "083f92042620f07043a400e6192ddfcacdaee30ba9903f4cb86c9df11c625cc6"
dependencies = [
"clap",
"libc",
"uucore",
"windows-sys 0.59.0",
]
[[package]]
name = "uucore"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71f4e82877d06de779c611a3d54720f56f1e68b228fb30a5b6c66ef07e68263d"
checksum = "9032bf981784f22fcc5ddc7e74b7cf3bae3d5f44a48d2054138ed38068b9f4e0"
dependencies = [
"chrono",
"chrono-tz",
"bigdecimal",
"clap",
"dunce",
"fluent",
"fluent-bundle",
"glob",
"iana-time-zone",
"libc",
"nix 0.29.0",
"nix 0.30.1",
"num-traits",
"number_prefix",
"os_display",
"thiserror 2.0.12",
"unic-langid",
"uucore_procs",
"walkdir",
"wild",
@ -7918,9 +8053,9 @@ dependencies = [
[[package]]
name = "uucore_procs"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c72435859e812e602e225dea48d014abb6b1072220a8d44f2fe0565553b1f7e4"
checksum = "c933945fdac5b7779eae1fc746146e61f5b0298deb6ede002ce0b6e93e1b3bfc"
dependencies = [
"proc-macro2",
"quote",
@ -7929,9 +8064,9 @@ dependencies = [
[[package]]
name = "uuhelp_parser"
version = "0.0.30"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bb6d972f580f8223cb7052d8580aea2b7061e368cf476de32ea9457b19459ed"
checksum = "beda381dd5c7927f8682f50b055b0903bb694ba5a4b27fad1b4934bc4fbf7b8d"
[[package]]
name = "uuid"
@ -8441,6 +8576,12 @@ dependencies = [
"syn 2.0.90",
]
[[package]]
name = "windows-link"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
[[package]]
name = "windows-registry"
version = "0.2.0"
@ -8864,6 +9005,15 @@ dependencies = [
"zerovec-derive",
]
[[package]]
name = "zerovec"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
dependencies = [
"zerofrom",
]
[[package]]
name = "zerovec-derive"
version = "0.10.3"

View File

@ -172,14 +172,14 @@ unicode-segmentation = "1.12"
unicode-width = "0.2"
ureq = { version = "2.12", default-features = false, features = ["socks-proxy"] }
url = "2.2"
uu_cp = "0.0.30"
uu_mkdir = "0.0.30"
uu_mktemp = "0.0.30"
uu_mv = "0.0.30"
uu_touch = "0.0.30"
uu_whoami = "0.0.30"
uu_uname = "0.0.30"
uucore = "0.0.30"
uu_cp = "0.1.0"
uu_mkdir = "0.1.0"
uu_mktemp = "0.1.0"
uu_mv = "0.1.0"
uu_touch = "0.1.0"
uu_whoami = "0.1.0"
uu_uname = "0.1.0"
uucore = "0.1.0"
uuid = "1.16.0"
v_htmlescape = "0.15.0"
wax = "0.6"

View File

@ -119,9 +119,9 @@ impl Command for UCp {
) -> Result<PipelineData, ShellError> {
let interactive = call.has_flag(engine_state, stack, "interactive")?;
let (update, copy_mode) = if call.has_flag(engine_state, stack, "update")? {
(UpdateMode::ReplaceIfOlder, CopyMode::Update)
(UpdateMode::IfOlder, CopyMode::Update)
} else {
(UpdateMode::ReplaceAll, CopyMode::Copy)
(UpdateMode::All, CopyMode::Copy)
};
let force = call.has_flag(engine_state, stack, "force")?;
@ -252,7 +252,7 @@ impl Command for UCp {
dereference: !recursive,
progress_bar: progress,
attributes_only: false,
backup: BackupMode::NoBackup,
backup: BackupMode::None,
copy_contents: false,
cli_dereference: false,
copy_mode,
@ -264,6 +264,8 @@ impl Command for UCp {
backup_suffix: String::from("~"),
target_dir: None,
update,
set_selinux_context: false,
context: None,
};
if let Err(error) = uu_cp::copy(&sources, &target_path, &options) {

View File

@ -74,8 +74,16 @@ impl Command for UMkdir {
});
}
let config = uu_mkdir::Config {
recursive: IS_RECURSIVE,
mode: get_mode(),
verbose: is_verbose,
set_selinux_context: false,
context: None,
};
for dir in directories {
if let Err(error) = mkdir(&dir, IS_RECURSIVE, get_mode(), is_verbose) {
if let Err(error) = mkdir(&dir, &config) {
return Err(ShellError::GenericError {
error: format!("{}", error),
msg: format!("{}", error),

View File

@ -95,9 +95,9 @@ impl Command for UMv {
uu_mv::OverwriteMode::Force
};
let update = if call.has_flag(engine_state, stack, "update")? {
UpdateMode::ReplaceIfOlder
UpdateMode::IfOlder
} else {
UpdateMode::ReplaceAll
UpdateMode::All
};
#[allow(deprecated)]
@ -186,7 +186,7 @@ impl Command for UMv {
progress_bar: progress,
verbose,
suffix: String::from("~"),
backup: BackupMode::NoBackup,
backup: BackupMode::None,
update,
target_dir: None,
no_target_dir: false,