mirror of
https://github.com/tofuutils/pre-commit-opentofu.git
synced 2025-10-15 17:38:54 +02:00
fix: Change terraform_validate hook functionality for subdirectories with terraform files (#100)
* Update terraform_validate.sh:
-Change to the directory before running terraform validate to use the Terraform
configuration for the appropriate working directory.
* Neglected to change the terraform validate call to use the default of the
current directory.
* Several changes to improve functionality:
- Switch to checking the path for '*.tf' instead of always checking the current
directory.
- Try to find a '.terraform' directory (which indicates a `terraform init`) and
change to that directory before running `terraform validate`.
* Fix the description for the terraform_validate hook to reflect changes that were
made in:
35e0356188
* - Clean up comments.
- Adjust variable names to better reflect what they are holding.
This commit is contained in:
parent
8cbcd8ea2b
commit
7694fb9b9a
2 changed files with 23 additions and 3 deletions
|
|
@ -35,7 +35,7 @@
|
|||
exclude: \.terraform\/.*$
|
||||
|
||||
- id: terraform_validate
|
||||
name: Terraform validate without variables
|
||||
name: Terraform validate
|
||||
description: Validates all Terraform configuration files.
|
||||
entry: terraform_validate.sh
|
||||
language: script
|
||||
|
|
|
|||
|
|
@ -15,13 +15,33 @@ done
|
|||
for path_uniq in $(echo "${paths[*]}" | tr ' ' '\n' | sort -u); do
|
||||
path_uniq="${path_uniq//__REPLACED__SPACE__/ }"
|
||||
|
||||
if [[ -n "$(find . -maxdepth 1 -name '*.tf' -print -quit)" ]]; then
|
||||
if ! terraform validate $path_uniq; then
|
||||
if [[ -n "$(find $path_uniq -maxdepth 1 -name '*.tf' -print -quit)" ]]; then
|
||||
|
||||
starting_path=$(realpath "$path_uniq")
|
||||
terraform_path="$path_uniq"
|
||||
|
||||
# Find the relevant .terraform directory (indicating a 'terraform init'),
|
||||
# but fall through to the current directory.
|
||||
while [[ "$terraform_path" != "." ]]; do
|
||||
if [[ -d "$terraform_path/.terraform" ]]; then
|
||||
break
|
||||
else
|
||||
terraform_path=$(dirname "$terraform_path")
|
||||
fi
|
||||
done
|
||||
|
||||
validate_path="${path_uniq#"$terraform_path"}"
|
||||
|
||||
# Change to the directory that has been initialized, run validation, then
|
||||
# change back to the starting directory.
|
||||
cd "$(realpath "$terraform_path")"
|
||||
if ! terraform validate $validate_path; then
|
||||
error=1
|
||||
echo
|
||||
echo "Failed path: $path_uniq"
|
||||
echo "================================"
|
||||
fi
|
||||
cd "$starting_path"
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue