diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index b0566cf..1e873b6 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -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: diff --git a/CHANGELOG.md b/CHANGELOG.md index d702c9e..847c7e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,6 @@ All notable changes to this project will be documented in this file. -## [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) @@ -57,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) diff --git a/README.md b/README.md index c8434c9..c5f25a9 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/hooks/tofu_docs.sh b/hooks/tofu_docs.sh index 975ca79..8b8d136 100755 --- a/hooks/tofu_docs.sh +++ b/hooks/tofu_docs.sh @@ -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 diff --git a/hooks/tofu_docs_replace.py b/hooks/tofu_docs_replace.py index 2e0f4ba..26f1d06 100644 --- a/hooks/tofu_docs_replace.py +++ b/hooks/tofu_docs_replace.py @@ -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 diff --git a/hooks/tofu_validate.sh b/hooks/tofu_validate.sh index c332a18..3999b9f 100755 --- a/hooks/tofu_validate.sh +++ b/hooks/tofu_validate.sh @@ -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 diff --git a/lib_getopt b/lib_getopt index 74e72f1..c4b21fa 100644 --- a/lib_getopt +++ b/lib_getopt @@ -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