diff --git a/src/uu/env/src/env.rs b/src/uu/env/src/env.rs index e33e13dac..1801b71f3 100644 --- a/src/uu/env/src/env.rs +++ b/src/uu/env/src/env.rs @@ -344,18 +344,7 @@ impl EnvAppData { program: vec![], }; - // change directory - if let Some(d) = opts.running_directory { - match env::set_current_dir(d) { - Ok(()) => d, - Err(error) => { - return Err(USimpleError::new( - 125, - format!("cannot change directory to {}: {error}", d.quote()), - )); - } - }; - } + apply_change_directory(&opts)?; let mut begin_prog_opts = false; if let Some(mut iter) = matches.get_many::("vars") { @@ -494,6 +483,21 @@ impl EnvAppData { } } +fn apply_change_directory(opts: &Options<'_>) -> Result<(), Box> { + if let Some(d) = opts.running_directory { + match env::set_current_dir(d) { + Ok(()) => d, + Err(error) => { + return Err(USimpleError::new( + 125, + format!("cannot change directory to {}: {error}", d.quote()), + )); + } + }; + } + Ok(()) +} + fn apply_specified_env_vars(opts: &Options<'_>) { // set specified env vars for (name, val) in &opts.sets {