gruntwork-io / boilerplate

A tool for generating files and folders ("boilerplate") from a set of templates
https://www.gruntwork.io
Mozilla Public License 2.0
157 stars 12 forks source link

Ignore templating some file or directories #167

Open vDMG opened 3 months ago

vDMG commented 3 months ago

First, thanks for open-sourcing this super cool project !

Describe the solution you'd like We need a method to disable the templating for certain files/folders, especially when dealing with components like Helm chart templates that already include Go templates. In such cases, we don't want boilerplate to template them; instead, we need to output them as-is.

Describe alternatives you've considered Not sure there is a clean way to do this but I found this workaround :

hooks:
  after:
  # copy helm templates (necessary because of go templates conflicts)
  - command: cp
    args:
      - -R
      - 'charts/{{"{{"}}.serviceName{{"}}"}}/templates/'
      - "{{ outputFolder }}/charts/{{ .serviceName }}/templates/"
  # copy github action files (necessary because of go templates conflicts)
  - command: cp
    args:
      - -R
      - ".github/workflows/"
      - "{{ outputFolder }}/.github/workflows/"

Additional context I propose to add a property like disable_templating or skip_templating to the boilerplate manifest working the same way skip_files works but instead of skipping them we just copy them as-is.

WDYT ? If you like this proposal i'd love to contribute to the project.

brikis98 commented 3 months ago

Did you try skip_files?

vDMG commented 3 months ago

Did you try skip_files?

Yes, but skip_files ignores those files, and they do not appear in the rendered project. In my case, I want to disable templating, but I need them in the rendered project. So, I simply want to copy/paste them without attempting to template.

brikis98 commented 3 months ago

Oh, I gotcha. Sorry, read too quickly, and misunderstood.

A skip_templating feature similar to skip_files makes sense to me! PR welcome.