substituteVariables function

String substituteVariables(
  1. String script,
  2. Map<String, String> variables
)

Replaces ${VAR} tokens in script using variables first, then Platform.environment as fallback. Unknown variables are left unchanged.

Implementation

String substituteVariables(String script, Map<String, String> variables) {
  return script.replaceAllMapped(RegExp(r'\$\{(\w+)\}'), (match) {
    final name = match.group(1)!;
    return variables[name] ?? Platform.environment[name] ?? match.group(0)!;
  });
}