TheLocehiliosan / yadm

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

Support nested ifs for built-in template processor #436

Open nolith opened 1 year ago

nolith commented 1 year ago

Describe the bug

A template with a nested if do not work and renders with an extra {% endif %}

To reproduce

Can this be reproduced with the yadm/testbed docker image: No - I wasn't able to make yadm alt work on the container

Steps to reproduce the behavior:

  1. Run command
    cat << EOF > test.conf\#\#template
    {% if yadm.os == "Darwin" %}
    {% if yadm.arch == "arm64" %}
    macOS arm64
    {% else %}
    macOS amd64
    {% endif %}
    {% endif %}
    EOF
  2. Run command yadm add test.conf##template
  3. Run command yadm alt
  4. See error cat test.conf
    macOS arm64
    {% endif %}

Expected behavior

test.conf should have only included one line macOS arm64

Environment

Additional context

[Add any other context about the problem here.]

TheLocehiliosan commented 1 year ago

This is currently working as intended. The built-in template processing is for very simple cases, and does not support nested conditionals. I'll change this issue to be a feature request.