From 3f2c76df28a4df349abdc671e49f5cbdde8c0445 Mon Sep 17 00:00:00 2001 From: Michael Angerman <1809991+stormasm@users.noreply.github.com> Date: Tue, 29 Aug 2023 14:46:50 -0700 Subject: [PATCH] Move `eval_hook` to `nu-cmd-base` (#10146) I moved hook to *nu_cmd_base* instead of *nu_cli* because it will enable other developers to continue to use hook even if they decide to write their on cli or NOT depend on nu-cli Then they will still have the hook functionality because they can include nu-cmd-base --- Cargo.lock | 2 ++ crates/nu-cli/Cargo.toml | 2 +- crates/nu-cli/src/repl.rs | 4 ++-- crates/nu-cli/src/util.rs | 2 +- crates/nu-cmd-base/Cargo.toml | 2 ++ crates/{nu-command => nu-cmd-base}/src/hook.rs | 2 +- crates/nu-cmd-base/src/lib.rs | 1 + crates/nu-command/src/lib.rs | 2 -- crates/nu-command/src/system/run_external.rs | 2 +- src/test_bins.rs | 2 +- 10 files changed, 12 insertions(+), 9 deletions(-) rename crates/{nu-command => nu-cmd-base}/src/hook.rs (99%) diff --git a/Cargo.lock b/Cargo.lock index dc7335a0d5..7142a88d93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2647,7 +2647,9 @@ name = "nu-cmd-base" version = "0.84.1" dependencies = [ "indexmap 2.0.0", + "miette", "nu-engine", + "nu-parser", "nu-path", "nu-protocol", ] diff --git a/crates/nu-cli/Cargo.toml b/crates/nu-cli/Cargo.toml index 4bad11fe82..142c121179 100644 --- a/crates/nu-cli/Cargo.toml +++ b/crates/nu-cli/Cargo.toml @@ -12,12 +12,12 @@ bench = false [dev-dependencies] nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.84.1" } +nu-command = { path = "../nu-command", version = "0.84.1" } nu-test-support = { path = "../nu-test-support", version = "0.84.1" } rstest = { version = "0.18.1", default-features = false } [dependencies] nu-cmd-base = { path = "../nu-cmd-base", version = "0.84.1" } -nu-command = { path = "../nu-command", version = "0.84.1" } nu-engine = { path = "../nu-engine", version = "0.84.1" } nu-path = { path = "../nu-path", version = "0.84.1" } nu-parser = { path = "../nu-parser", version = "0.84.1" } diff --git a/crates/nu-cli/src/repl.rs b/crates/nu-cli/src/repl.rs index 80d4973385..2cac47816d 100644 --- a/crates/nu-cli/src/repl.rs +++ b/crates/nu-cli/src/repl.rs @@ -8,9 +8,9 @@ use crate::{ use crossterm::cursor::SetCursorStyle; use log::{trace, warn}; use miette::{ErrReport, IntoDiagnostic, Result}; +use nu_cmd_base::hook::eval_hook; use nu_cmd_base::util::get_guaranteed_cwd; use nu_color_config::StyleComputer; -use nu_command::hook::eval_hook; use nu_engine::convert_env_values; use nu_parser::{lex, parse, trim_quotes_str}; use nu_protocol::{ @@ -50,7 +50,7 @@ pub fn evaluate_repl( load_std_lib: Option>, entire_start_time: Instant, ) -> Result<()> { - use nu_command::hook; + use nu_cmd_base::hook; use reedline::Signal; let use_color = engine_state.get_config().use_ansi_coloring; diff --git a/crates/nu-cli/src/util.rs b/crates/nu-cli/src/util.rs index 2c41ae60a6..5dc76b4856 100644 --- a/crates/nu-cli/src/util.rs +++ b/crates/nu-cli/src/util.rs @@ -1,4 +1,4 @@ -use nu_command::hook::eval_hook; +use nu_cmd_base::hook::eval_hook; use nu_engine::{eval_block, eval_block_with_early_return}; use nu_parser::{escape_quote_string, lex, parse, unescape_unquote_string, Token, TokenContents}; use nu_protocol::engine::StateWorkingSet; diff --git a/crates/nu-cmd-base/Cargo.toml b/crates/nu-cmd-base/Cargo.toml index c5ca602df3..e861e56ebf 100644 --- a/crates/nu-cmd-base/Cargo.toml +++ b/crates/nu-cmd-base/Cargo.toml @@ -11,6 +11,8 @@ version = "0.84.1" [dependencies] nu-engine = { path = "../nu-engine", version = "0.84.1" } +nu-parser = { path = "../nu-parser", version = "0.84.1" } nu-path = { path = "../nu-path", version = "0.84.1" } nu-protocol = { version = "0.84.1", path = "../nu-protocol" } indexmap = { version = "2.0" } +miette = { version = "5.10", features = ["fancy-no-backtrace"] } diff --git a/crates/nu-command/src/hook.rs b/crates/nu-cmd-base/src/hook.rs similarity index 99% rename from crates/nu-command/src/hook.rs rename to crates/nu-cmd-base/src/hook.rs index fbcdf4a3e1..8008771070 100644 --- a/crates/nu-command/src/hook.rs +++ b/crates/nu-cmd-base/src/hook.rs @@ -1,5 +1,5 @@ +use crate::util::get_guaranteed_cwd; use miette::Result; -use nu_cmd_base::util::get_guaranteed_cwd; use nu_engine::{eval_block, eval_block_with_early_return}; use nu_parser::parse; use nu_protocol::ast::PathMember; diff --git a/crates/nu-cmd-base/src/lib.rs b/crates/nu-cmd-base/src/lib.rs index 759a89bb1e..250a57d741 100644 --- a/crates/nu-cmd-base/src/lib.rs +++ b/crates/nu-cmd-base/src/lib.rs @@ -1,3 +1,4 @@ pub mod formats; +pub mod hook; pub mod input_handler; pub mod util; diff --git a/crates/nu-command/src/lib.rs b/crates/nu-command/src/lib.rs index 276f359e8d..600954f896 100644 --- a/crates/nu-command/src/lib.rs +++ b/crates/nu-command/src/lib.rs @@ -13,7 +13,6 @@ mod formats; mod generators; mod hash; mod help; -pub mod hook; mod math; mod misc; mod network; @@ -44,7 +43,6 @@ pub use formats::*; pub use generators::*; pub use hash::*; pub use help::*; -pub use hook::*; pub use math::*; pub use misc::*; pub use network::*; diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index 2082e28775..207328b244 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -1,4 +1,4 @@ -use crate::hook::eval_hook; +use nu_cmd_base::hook::eval_hook; use nu_engine::env_to_strings; use nu_engine::CallExt; use nu_protocol::{ diff --git a/src/test_bins.rs b/src/test_bins.rs index 2bb12eaa80..2e5a4a5e22 100644 --- a/src/test_bins.rs +++ b/src/test_bins.rs @@ -1,4 +1,4 @@ -use nu_command::hook::{eval_env_change_hook, eval_hook}; +use nu_cmd_base::hook::{eval_env_change_hook, eval_hook}; use nu_engine::eval_block; use nu_parser::parse; use nu_protocol::engine::{EngineState, Stack, StateWorkingSet};