Conditional Config¶
dot-man supports conditional blocks in tracked files for cross-platform configs.
Syntax¶
Supported Operators¶
==— equals!=— not equals
Examples¶
OS-specific¶
# ~/.bashrc
{{ if OS == "darwin" }}
export PATH="/opt/homebrew/bin:$PATH"
alias ls="ls -G"
{{ endif }}
{{ if OS == "linux" }}
export PATH="/usr/local/bin:$PATH"
alias ls="ls --color=auto"
{{ endif }}
Machine-specific¶
# ~/.gitconfig
{{ if MACHINE == "work-laptop" }}
[url "git@github.com:company/"]
insteadOf = https://github.com/company/
{{ endif }}
Negation¶
How It Works¶
- Templates are processed during
deployandsave - Conditionals are evaluated first
- Simple
{{VAR}}substitution happens after - If a variable is undefined, the conditional block is skipped