forked from extern/nushell
Update ichwh
to 3.0 (#1267)
The [newest update for ichwh][changes] introduced some breaking changes. This PR bumps the version and refactors the `which` command to take these into account. [changes]: https://gitlab.com/avandesa/ichwh-rs/blob/master/CHANGELOG.md#030-2020-01-22
This commit is contained in:
parent
66bd331ba9
commit
07191754bf
16
Cargo.lock
generated
16
Cargo.lock
generated
@ -1032,7 +1032,6 @@ checksum = "b6f16056ecbb57525ff698bb955162d0cd03bee84e6241c27ff75c08d8ca5987"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-executor",
|
|
||||||
"futures-io",
|
"futures-io",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
"futures-task",
|
"futures-task",
|
||||||
@ -1071,17 +1070,6 @@ version = "0.3.0-alpha.19"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
|
checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-executor"
|
|
||||||
version = "0.3.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1e274736563f686a837a0568b478bdabfeaec2dca794b5649b04e2fe1627c231"
|
|
||||||
dependencies = [
|
|
||||||
"futures-core",
|
|
||||||
"futures-task",
|
|
||||||
"futures-util",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-executor-preview"
|
name = "futures-executor-preview"
|
||||||
version = "0.3.0-alpha.19"
|
version = "0.3.0-alpha.19"
|
||||||
@ -1605,9 +1593,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ichwh"
|
name = "ichwh"
|
||||||
version = "0.2.1"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2ee706a4af782acda5a05b7641867dd9c93d7f2884f214fbbad009e5752228d1"
|
checksum = "ec27ed05786e59eb2e012b8693ab59abda5d76c7578ef1cde2eb5ff631c342ce"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
|
@ -105,7 +105,7 @@ subprocess = "0.1.18"
|
|||||||
pretty-hex = "0.1.1"
|
pretty-hex = "0.1.1"
|
||||||
hex = "0.4"
|
hex = "0.4"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
ichwh = "0.2"
|
ichwh = "0.3"
|
||||||
textwrap = {version = "0.11.0", features = ["term_size"]}
|
textwrap = {version = "0.11.0", features = ["term_size"]}
|
||||||
shellexpand = "1.1.1"
|
shellexpand = "1.1.1"
|
||||||
pin-utils = "0.1.0-alpha.4"
|
pin-utils = "0.1.0-alpha.4"
|
||||||
|
@ -90,7 +90,7 @@ fn which(
|
|||||||
if all {
|
if all {
|
||||||
let stream = async_stream! {
|
let stream = async_stream! {
|
||||||
if external {
|
if external {
|
||||||
if let Ok(path) = ichwh::which(&item).await {
|
if let Ok(Some(path)) = ichwh::which(&item).await {
|
||||||
yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone()));
|
yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,19 +125,25 @@ fn which(
|
|||||||
} else {
|
} else {
|
||||||
let stream = async_stream! {
|
let stream = async_stream! {
|
||||||
if external {
|
if external {
|
||||||
if let Ok(path) = ichwh::which(&item).await {
|
if let Ok(Some(path)) = ichwh::which(&item).await {
|
||||||
yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone()));
|
yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone()));
|
||||||
}
|
}
|
||||||
} else if commands.has(&item) {
|
} else if commands.has(&item) {
|
||||||
yield ReturnSuccess::value(entry_builtin!(item, application.tag.clone()));
|
yield ReturnSuccess::value(entry_builtin!(item, application.tag.clone()));
|
||||||
} else if let Ok(path) = ichwh::which(&item).await {
|
|
||||||
yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone()));
|
|
||||||
} else {
|
} else {
|
||||||
yield Err(ShellError::labeled_error(
|
match ichwh::which(&item).await {
|
||||||
"Binary not found for argument, and argument is not a builtin",
|
Ok(Some(path)) => yield ReturnSuccess::value(entry_path!(item, path.into(), application.tag.clone())),
|
||||||
"not found",
|
Ok(None) => yield Err(ShellError::labeled_error(
|
||||||
&application.tag,
|
"Binary not found for argument, and argument is not a builtin",
|
||||||
));
|
"not found",
|
||||||
|
&application.tag,
|
||||||
|
)),
|
||||||
|
Err(_) => yield Err(ShellError::labeled_error(
|
||||||
|
"Error trying to find binary for argument",
|
||||||
|
"error",
|
||||||
|
&application.tag,
|
||||||
|
)),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user