From c4f8251d302260953c62a6b2116ea89584ce04a6 Mon Sep 17 00:00:00 2001 From: Maksym Vlasov Date: Tue, 5 Jul 2022 15:49:10 +0300 Subject: [PATCH] fix: Add `--tf-init-args`, deprecate `--init-args` (#407) --- README.md | 4 ++-- hooks/_common.sh | 15 ++++++++------- hooks/terraform_validate.sh | 9 +++++---- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b0a10bad1..6037c82ce 100644 --- a/README.md +++ b/README.md @@ -520,7 +520,7 @@ Example: ```yaml - id: terraform_providers_lock args: - - --init-args=-upgrade + - --tf-init-args=-upgrade ``` @@ -629,7 +629,7 @@ Example: ```yaml - id: terraform_validate args: - - --init-args=-lockfile=readonly + - --tf-init-args=-lockfile=readonly ``` 4. It may happen that Terraform working directory (`.terraform`) already exists but not in the best condition (eg, not initialized modules, wrong version of Terraform, etc.). To solve this problem, you can find and delete all `.terraform` directories in your repository: diff --git a/hooks/_common.sh b/hooks/_common.sh index e5be5ffc4..1dcd82d61 100644 --- a/hooks/_common.sh +++ b/hooks/_common.sh @@ -25,7 +25,7 @@ function common::initialize { # Globals (init and populate): # ARGS (array) arguments that configure wrapped tool behavior # HOOK_CONFIG (array) arguments that configure hook behavior -# INIT_ARGS (array) arguments for `terraform init` command +# TF_INIT_ARGS (array) arguments for `terraform init` command # FILES (array) filenames to check # Arguments: # $@ (array) all specified in `hooks.[].args` in @@ -36,10 +36,10 @@ function common::parse_cmdline { # Populated via `common::parse_cmdline` and can be used inside hooks' functions ARGS=() HOOK_CONFIG=() FILES=() # Used inside `common::terraform_init` function - INIT_ARGS=() + TF_INIT_ARGS=() local argv - argv=$(getopt -o a:,h: --long args:,hook-config: -- "$@") || return + argv=$(getopt -o a:,h:,i: --long args:,hook-config:,init-args:,tf-init-args: -- "$@") || return eval "set -- $argv" for argv; do @@ -54,9 +54,10 @@ function common::parse_cmdline { HOOK_CONFIG+=("$1;") shift ;; - -i | --init-args) + # TODO: Planned breaking change: remove `--init-args` as not self-descriptive + -i | --init-args | --tf-init-args) shift - INIT_ARGS+=("$1") + TF_INIT_ARGS+=("$1") shift ;; --) @@ -246,7 +247,7 @@ function common::colorify { # dir_path (string) PATH to dir relative to git repo root. # Can be used in error logging # Globals (init and populate): -# INIT_ARGS (array) arguments for `terraform init` command +# TF_INIT_ARGS (array) arguments for `terraform init` command # Outputs: # If failed - print out terraform init output ####################################################################### @@ -258,7 +259,7 @@ function common::terraform_init { local init_output if [ ! -d .terraform ]; then - init_output=$(terraform init -backend=false "${INIT_ARGS[@]}" 2>&1) + init_output=$(terraform init -backend=false "${TF_INIT_ARGS[@]}" 2>&1) exit_code=$? if [ $exit_code -ne 0 ]; then diff --git a/hooks/terraform_validate.sh b/hooks/terraform_validate.sh index eefe73321..8e1eff08b 100755 --- a/hooks/terraform_validate.sh +++ b/hooks/terraform_validate.sh @@ -34,7 +34,7 @@ function main { # Globals (init and populate): # ARGS (array) arguments that configure wrapped tool behavior # HOOK_CONFIG (array) arguments that configure hook behavior -# INIT_ARGS (array) arguments to `terraform init` command +# TF_INIT_ARGS (array) arguments to `terraform init` command # ENVS (array) environment variables that will be used with # `terraform` commands # FILES (array) filenames to check @@ -44,7 +44,7 @@ function main { ####################################################################### function parse_cmdline_ { declare argv - argv=$(getopt -o e:i:a: --long envs:,init-args:,args: -- "$@") || return + argv=$(getopt -o e:i:a:h: --long envs:,tf-init-args:,init-args:,args: -- "$@") || return eval "set -- $argv" for argv; do @@ -59,9 +59,10 @@ function parse_cmdline_ { HOOK_CONFIG+=("$1;") shift ;; - -i | --init-args) + # TODO: Planned breaking change: remove `--init-args` as not self-descriptive + -i | --init-args | --tf-init-args) shift - INIT_ARGS+=("$1") + TF_INIT_ARGS+=("$1") shift ;; -e | --envs)