From 979ab999ad2705b7de2e612214413b08d4e868d7 Mon Sep 17 00:00:00 2001 From: David Claeys Date: Wed, 5 Aug 2026 14:21:02 +0200 Subject: [PATCH] fix evaluation script --- conditional-variables/evaluate.sh | 44 ++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/conditional-variables/evaluate.sh b/conditional-variables/evaluate.sh index 66f7e88..11fe070 100644 --- a/conditional-variables/evaluate.sh +++ b/conditional-variables/evaluate.sh @@ -210,4 +210,46 @@ parse_rules() { while IFS= read -r line; do line="$(trim "${line:-}")" - [[ -z "$line" ]] && continue \ No newline at end of file + [[ -z "$line" ]] && continue + [[ "$line" =~ ^# ]] && continue + + case "$line" in + if:) + finalize_rule "$current_conditions" "$current_variables" + + current_conditions="" + current_variables="" + mode="conditions" + ;; + + set:) + mode="variables" + ;; + + *) + case "$mode" in + conditions) + if [[ -n "$current_conditions" ]]; then + current_conditions+=$'\n' + fi + current_conditions+="$line" + ;; + + variables) + if [[ -n "$current_variables" ]]; then + current_variables+=$'\n' + fi + current_variables+="$line" + ;; + + *) + echo "Unexpected line outside of if:/set: block: $line" + ;; + esac + ;; + esac + + done <<< "${RULES:-}" + + finalize_rule "$current_conditions" "$current_variables" +} \ No newline at end of file