Compare commits

..

No commits in common. "main" and "v2.4.0" have entirely different histories.

8 changed files with 18 additions and 49 deletions

View file

@ -27,13 +27,9 @@ jobs:
sudo apt update && sudo apt install shellcheck
- name: Install hadolint
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release download v2.14.0 --repo hadolint/hadolint --pattern "hadolint-linux-x86_64"
mv hadolint-linux-x86_64 hadolint
chmod +x hadolint
sudo mv hadolint /usr/bin/
curl -L "$(curl -s https://api.github.com/repos/hadolint/hadolint/releases/latest | grep -o -E -m 1 "https://.+?/hadolint-Linux-x86_64")" > hadolint \
&& chmod +x hadolint && sudo mv hadolint /usr/bin/
# Need to success pre-commit fix push
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:

View file

@ -2,22 +2,6 @@
All notable changes to this project will be documented in this file.
## [2.4.2](https://github.com/tofuutils/pre-commit-opentofu/compare/v2.4.1...v2.4.2) (2026-06-12)
### Bug Fixes
* **hooks:** make env var regex portable ([caab3b8](https://github.com/tofuutils/pre-commit-opentofu/commit/caab3b8701405a446489a7864f91a2c9f281eee0))
## [2.4.1](https://github.com/tofuutils/pre-commit-opentofu/compare/v2.4.0...v2.4.1) (2026-06-01)
### Bug Fixes
* initialize config_file_no_color variable ([b766f82](https://github.com/tofuutils/pre-commit-opentofu/commit/b766f82b087793f75b3ffa61eb22da80031455ce))
* typo fixes ([3f263a9](https://github.com/tofuutils/pre-commit-opentofu/commit/3f263a968cd776924c3d1f4981e0fbf1cd79ff4d))
* Update hadolint installation ([c9cd4a8](https://github.com/tofuutils/pre-commit-opentofu/commit/c9cd4a805d378516a24dac33278fa51deb98bf2e))
# [2.4.0](https://github.com/tofuutils/pre-commit-opentofu/compare/v2.3.0...v2.4.0) (2026-05-25)
@ -64,7 +48,7 @@ All notable changes to this project will be documented in this file.
### Features
* support .tofu files ([#6](https://github.com/tofuutils/pre-commit-opentofu/issues/6)) ([e059c58](https://github.com/tofuutils/pre-commit-opentofu/commit/e059c5859bceddf1ca018f55851f6940ad51f1c2))
* spport .tofu files ([#6](https://github.com/tofuutils/pre-commit-opentofu/issues/6)) ([e059c58](https://github.com/tofuutils/pre-commit-opentofu/commit/e059c5859bceddf1ca018f55851f6940ad51f1c2))
# [2.0.0](https://github.com/tofuutils/pre-commit-opentofu/compare/v1.0.4...v2.0.0) (2024-09-25)

View file

@ -718,7 +718,7 @@ To replicate functionality in `tofu_docs` hook:
- --args=--config=__GIT_WORKING_DIR__/.tflint.hcl
```
3. By default, pre-commit-opentofu performs directory switching into the OpenTofu modules for you. If you want to delegate the directory changing to the binary - this will allow tflint to determine the full paths for error/warning messages, rather than just module relative paths. *Note: this requires `tflint>=0.44.0`.* For example:
3. By default, pre-commit-opentofu performs directory switching into the OpenTofu modules for you. If you want to delgate the directory changing to the binary - this will allow tflint to determine the full paths for error/warning messages, rather than just module relative paths. *Note: this requires `tflint>=0.44.0`.* For example:
```yaml
- id: tofu_tflint

View file

@ -112,7 +112,7 @@ function common::parse_and_export_env_vars {
while true; do
# Check if at least 1 env var exists in `$arg`
# shellcheck disable=SC2016 # '${' should not be expanded
if [[ "$arg" =~ '${'[A-Z_][A-Za-z0-9_]*'}' ]]; then
if [[ "$arg" =~ .*'${'[A-Z_][A-Z0-9_]*'}'.* ]]; then
# Get `ENV_VAR` from `.*${ENV_VAR}.*`
local env_var_name=${arg#*$\{}
env_var_name=${env_var_name%%\}*}

View file

@ -69,7 +69,6 @@ function tofu_docs {
local -a -r files=("$@")
local -a paths
local config_file_no_color=""
local index=0
local file_with_path

View file

@ -36,14 +36,13 @@ def main(argv=None):
args = parser.parse_args(argv)
dirs = []
seen_dirs = set()
for filename in args.filenames:
if filename.endswith((".tf", ".tofu", ".tfvars")):
dir_path = os.path.dirname(filename)
dir_key = os.path.realpath(dir_path)
if dir_key not in seen_dirs:
seen_dirs.add(dir_key)
dirs.append(dir_path)
if os.path.realpath(filename) not in dirs and (
filename.endswith(".tf")
or filename.endswith(".tofu")
or filename.endswith(".tfvars")
):
dirs.append(os.path.dirname(filename))
retval = 0

View file

@ -128,18 +128,12 @@ function per_dir_hook_unique_part {
if [ "$retry_once_with_cleanup" != "true" ]; then
# tofu validate only
if validate_output=$(tofu validate "${args[@]}" 2>&1); then
exit_code=0
else
exit_code=$?
fi
validate_output=$(tofu validate "${args[@]}" 2>&1)
exit_code=$?
else
# tofu validate, plus capture possible errors
if validate_output=$(tofu validate -json "${args[@]}" 2>&1); then
exit_code=0
else
exit_code=$?
fi
validate_output=$(tofu validate -json "${args[@]}" 2>&1)
exit_code=$?
# Match specific validation errors
local -i validate_errors_matched
@ -161,11 +155,8 @@ function per_dir_hook_unique_part {
return $exit_code
}
if validate_output=$(tofu validate "${args[@]}" 2>&1); then
exit_code=0
else
exit_code=$?
fi
validate_output=$(tofu validate "${args[@]}" 2>&1)
exit_code=$?
fi
fi

View file

@ -360,7 +360,7 @@ getopt() {
}
_getopt_resolve_abbrev() {
# Resolves an abbreviation from a list of possibilities.
# Resolves an abbrevation from a list of possibilities.
# If the abbreviation is unambiguous, echoes the expansion on stdout
# and returns 0. If the abbreviation is ambiguous, prints a message on
# stderr and returns 1. (For first parse this should convert to exit