#!/usr/bin/env bash

cat <<EOF >mise.toml
tasks.a.run = "echo foo: {{vars.foo}}"
vars.foo = "bar"
EOF
assert "mise run a" "foo: bar"

cat <<EOF >mise.toml
tasks.a.run = "echo foo: {{vars.foo}}"
vars.foo = "{{cwd}}"
EOF
assert "mise run a" "foo: $(pwd)"

echo '{ "SECRET": "123" }' >.env.json
cat <<EOF >mise.toml
tasks.a.run = "echo foo: {{vars.SECRET}}"
vars._.file = ".env.json"
EOF
assert "mise run a" "foo: 123"

cat <<EOF >mise.toml
tasks.a.run = "echo foo: {{vars.bar}}"
vars.foo = "bar"
vars.bar = "bar: {{vars.foo}}"
EOF
assert "mise run a" "foo: bar: bar"

# Per-task vars override config-level vars
cat <<EOF >mise.toml
[vars]
greeting = "hello"
name = "world"

[tasks.a]
run = "echo {{vars.greeting}} {{vars.name}}"
vars = { greeting = "hi" }
EOF
assert "mise run a" "hi world"

# Per-task var templates can reference base (config-level) vars
cat <<EOF >mise.toml
[vars]
base = "base_value"

[tasks.a]
run = "echo {{vars.derived}}"
vars = { derived = "derived from {{vars.base}}" }
EOF
assert "mise run a" "derived from base_value"
