diff --git a/crates/nu-cli/src/repl.rs b/crates/nu-cli/src/repl.rs index 64a1734513..48530ff689 100644 --- a/crates/nu-cli/src/repl.rs +++ b/crates/nu-cli/src/repl.rs @@ -325,7 +325,19 @@ fn loop_iteration(ctx: LoopContext) -> (bool, Stack, Reedline) { perf!("reset signals", start_time, use_color); start_time = std::time::Instant::now(); - // Right before we start our prompt and take input from the user, fire the "pre_prompt" hook + // Check all the environment variables they ask for + // fire the "env_change" hook + if let Err(error) = hook::eval_env_change_hook( + &engine_state.get_config().hooks.env_change.clone(), + engine_state, + &mut stack, + ) { + report_shell_error(engine_state, &error) + } + perf!("env-change hook", start_time, use_color); + + start_time = std::time::Instant::now(); + // Next, right before we start our prompt and take input from the user, fire the "pre_prompt" hook if let Err(err) = hook::eval_hooks( engine_state, &mut stack, @@ -337,18 +349,6 @@ fn loop_iteration(ctx: LoopContext) -> (bool, Stack, Reedline) { } perf!("pre-prompt hook", start_time, use_color); - start_time = std::time::Instant::now(); - // Next, check all the environment variables they ask for - // fire the "env_change" hook - if let Err(error) = hook::eval_env_change_hook( - &engine_state.get_config().hooks.env_change.clone(), - engine_state, - &mut stack, - ) { - report_shell_error(engine_state, &error) - } - perf!("env-change hook", start_time, use_color); - let engine_reference = Arc::new(engine_state.clone()); let config = stack.get_config(engine_state);