From 6efd1bcb3f2736768edc319d23f6eb3f4ba85ccd Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Fri, 20 May 2022 20:03:03 +0800 Subject: [PATCH] Don't report error when cwd is not exists. (#5590) * only set cwd for child process if cwd exists, and avoid showing error when pwd is not exists * better comment text Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com> --- crates/nu-cli/src/util.rs | 5 +---- crates/nu-command/src/system/run_external.rs | 7 +++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/nu-cli/src/util.rs b/crates/nu-cli/src/util.rs index 031413a0b6..a79187d70c 100644 --- a/crates/nu-cli/src/util.rs +++ b/crates/nu-cli/src/util.rs @@ -220,10 +220,7 @@ pub fn eval_source( } }; - if let Err(err) = engine_state.merge_delta(delta, Some(stack), &cwd) { - let working_set = StateWorkingSet::new(engine_state); - report_error(&working_set, &err); - } + let _ = engine_state.merge_delta(delta, Some(stack), &cwd); match eval_block(engine_state, stack, &block, input, false, false) { Ok(mut pipeline_data) => { diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index bbce0d9f42..1decd69243 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; use std::io::{BufRead, BufReader, Write}; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::process::{Command as CommandSys, Stdio}; use std::sync::atomic::Ordering; use std::sync::mpsc; @@ -339,7 +339,10 @@ impl ExternalCommand { self.create_command(d)? }; - process.current_dir(d); + // do not try to set current directory if cwd does not exist + if Path::new(&d).exists() { + process.current_dir(d); + } process } else { return Err(ShellError::GenericError(