Template Generation
Config Line
Assemble Settings
Generated configuration text often starts as a set of small scalar values. Joining the values into one predictable line keeps the result easy to inspect.
Program
Play the script to choose a log level and see the generated configuration line.
config_line_template.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash
level="info"
workers=2
config="log_level=$level workers=$workers"
echo "$config"
#!/usr/bin/env bash
level="debug"
workers=2
config="log_level=$level workers=$workers"
echo "$config"
level ← info
3level="info"4workers=2values this stepinfolevelworkers ← 2
3level="info"4workers=25config="log_level=$level workers=$workers"values this step2workersconfig ← log_level=info workers=2
4workers=25config="log_level=$level workers=$workers"6echo "$config"values this steplog_level=info workers=2configinfolevel2workersecho "$config"
5config="log_level=$level workers=$workers"6echo "$config"outputlog_level=info workers=2values this steplog_level=info workers=2config
level ← debug
3level="debug"4workers=2values this stepdebuglevelworkers ← 2
3level="debug"4workers=25config="log_level=$level workers=$workers"values this step2workersconfig ← log_level=debug workers=2
4workers=25config="log_level=$level workers=$workers"6echo "$config"values this steplog_level=debug workers=2configdebuglevel2workersecho "$config"
5config="log_level=$level workers=$workers"6echo "$config"outputlog_level=debug workers=2values this steplog_level=debug workers=2config
config generation
Scripts can generate small config fragments from known values.
scalar value
Simple scalar values are easier to validate before writing a larger config.
quoted expansion
Double quotes keep the generated line together while expanding variables.