yadm-dev / yadm

Yet Another Dotfiles Manager
https://yadm.io/
GNU General Public License v3.0
5.14k stars 177 forks source link

Rewrite default template to handle nested ifs, != and env vars in if #497

Closed erijo closed 2 weeks ago

erijo commented 3 weeks ago

What does this PR do?

Includes are now handled in the same way as the main file which means that included files can both include other files and have if statements in addition to variables (fixes #406). Include lines can now also have optional whitespace before {%.

All variables are handled in the same way now so it's now possible to use env variables in if statements (fixes #488).

Also add support for != in addition to == (fixes #358). Thus it's now e.g. possible to check if a variable is set (#477) by doing:

{% if yadm.class != ""%}
Class is set to {{ yadm.class }}
{% endif %}

A non-existing yadm or env variable is now replaced with the empty string.

What issues does this PR fix or reference?

358

406

436

477

488

Previous Behavior

See above.

New Behavior

See above.

Have tests been written for this change?

Yes

Have these commits been signed with GnuPG?

Yes


Please review yadm's Contributing Guide for best practices.