From 3950cfd7e3297d7f8ec56430d6462f6b67ecd3c2 Mon Sep 17 00:00:00 2001 From: HugoCasa Date: Wed, 9 Apr 2025 19:40:44 +0200 Subject: [PATCH] fix: add support for ${} syntax without default in bash (#5594) --- backend/parsers/windmill-parser-bash/src/lib.rs | 5 +++-- frontend/package-lock.json | 6 ++++-- frontend/package.json | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/backend/parsers/windmill-parser-bash/src/lib.rs b/backend/parsers/windmill-parser-bash/src/lib.rs index 39f1d2667b..69d96400dc 100644 --- a/backend/parsers/windmill-parser-bash/src/lib.rs +++ b/backend/parsers/windmill-parser-bash/src/lib.rs @@ -45,7 +45,7 @@ pub fn parse_powershell_sig(code: &str) -> anyhow::Result { } lazy_static::lazy_static! { - static ref RE_BASH: Regex = Regex::new(r#"(?m)^(\w+)="\$(?:(\d+)|\{(\d+):-(.*)\})"(?:[\t ]*)?(?:#.*)?$"#).unwrap(); + static ref RE_BASH: Regex = Regex::new(r#"(?m)^(\w+)="\$(?:(\d+)|\{(\d+)\}|\{(\d+):-(.*)\})"(?:[\t ]*)?(?:#.*)?$"#).unwrap(); pub static ref RE_POWERSHELL_PARAM: Regex = Regex::new(r#"(?m)param[\t ]*\(([^)]*)\)"#).unwrap(); static ref RE_POWERSHELL_ARGS: Regex = Regex::new(r#"(?:\[(\w+)\])?\$(\w+)[\t ]*(?:=[\t ]*(?:(?:(?:"|')([^"\n\r\$]*)(?:"|'))|([\d.]+)))?"#).unwrap(); @@ -57,11 +57,12 @@ fn parse_bash_file(code: &str) -> anyhow::Result>> { hm.insert( cap.get(2) .or(cap.get(3)) + .or(cap.get(4)) .and_then(|x| x.as_str().parse::().ok()) .ok_or_else(|| anyhow!("Impossible to parse arg digit"))?, ( cap[1].to_string(), - cap.get(4).map(|x| x.as_str().to_string()), + cap.get(5).map(|x| x.as_str().to_string()), ), ); } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6157c7d0ed..19a7ba80c2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -71,7 +71,7 @@ "windmill-parser-wasm-nu": "^1.474.1", "windmill-parser-wasm-php": "^1.429.0", "windmill-parser-wasm-py": "^1.477.1", - "windmill-parser-wasm-regex": "^1.478.2", + "windmill-parser-wasm-regex": "^1.481.0", "windmill-parser-wasm-rust": "^1.429.0", "windmill-parser-wasm-ts": "^1.429.0", "windmill-parser-wasm-yaml": "^1.429.0", @@ -10770,7 +10770,9 @@ "version": "1.477.1" }, "node_modules/windmill-parser-wasm-regex": { - "version": "1.478.2" + "version": "1.481.0", + "resolved": "https://registry.npmjs.org/windmill-parser-wasm-regex/-/windmill-parser-wasm-regex-1.481.0.tgz", + "integrity": "sha512-QY9NOaF0M55SBEbbcAkHoXppjdS2gb2NlwqhlZ1ciYWTtIrbZoL5K8xoG4FbB5vWRHxInG1aRdA2tb+JP180yA==" }, "node_modules/windmill-parser-wasm-rust": { "version": "1.429.0" diff --git a/frontend/package.json b/frontend/package.json index 8cdfe1df4e..f5e7c1cbd0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -144,7 +144,7 @@ "windmill-parser-wasm-nu": "^1.474.1", "windmill-parser-wasm-php": "^1.429.0", "windmill-parser-wasm-py": "^1.477.1", - "windmill-parser-wasm-regex": "^1.478.2", + "windmill-parser-wasm-regex": "^1.481.0", "windmill-parser-wasm-rust": "^1.429.0", "windmill-parser-wasm-ts": "^1.429.0", "windmill-parser-wasm-yaml": "^1.429.0",