From 872dc9b1df1dec5466970f085875e50b9436e967 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sat, 15 Oct 2022 16:46:28 -0400 Subject: feat(unstable/task): add `INIT_CWD` env var (#16110) --- cli/tools/task.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'cli/tools/task.rs') diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 88a0f5be0..4b05a37e5 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -70,7 +70,18 @@ pub async fn execute_script( ); let seq_list = deno_task_shell::parser::parse(script) .with_context(|| format!("Error parsing script '{}'.", task_name))?; - let env_vars = std::env::vars().collect::>(); + + // get the starting env vars (the PWD env var will be set by deno_task_shell) + let mut env_vars = std::env::vars().collect::>(); + const INIT_CWD_NAME: &str = "INIT_CWD"; + if !env_vars.contains_key(INIT_CWD_NAME) { + if let Ok(cwd) = std::env::current_dir() { + // if not set, set an INIT_CWD env var that has the cwd + env_vars + .insert(INIT_CWD_NAME.to_string(), cwd.to_string_lossy().to_string()); + } + } + let exit_code = deno_task_shell::execute(seq_list, env_vars, &cwd).await; Ok(exit_code) } else { -- cgit v1.2.3