gruntwork-io / pre-commit

A collection of pre-commit hooks used by Gruntwork tools
https://gruntwork.io/
Apache License 2.0
484 stars 155 forks source link

Ability to use -chdir=DIR with tf validate and tf fmt #106

Open lexicalunit opened 9 months ago

lexicalunit commented 9 months ago

Describe the solution you'd like I need to be able to set the dir via the global terraform argument -chdir=... before running validate:

repos:
- repo: https://github.com/gruntwork-io/pre-commit
  rev: v0.1.23
  hooks:
      - id: terraform-validate
        args: [-chdir=whatever]

However, what the above configuration actually does is attempt to pass -chidr=whatever to the validate subcommand. In other words, it executes this:

terraform validate -chdir=whatever

But that's an error because -chdir is not a valid argument for terraform validate.

What I need is a way to execute this:

terraform -chdir=whatever validate

Describe alternatives you've considered I haven't found a way to set the working directory via some other means.

lexicalunit commented 9 months ago

A workaround I found was to use the entry option and passing a short script to /bin/sh. I could have also passed something like terraform -chdir=/path/to/dir validate to the shell, either way is fine 🤷🏻‍♀️

repos:
- repo: https://github.com/gruntwork-io/pre-commit
  rev: v0.1.23
  hooks:
      - id: terraform-validate
        name: terraform validate
        entry: /bin/sh -c 'cd /path/to/dir && terraform validate'