Skip to content

Commit

Permalink
feat: Improved speed of pre-commit run -a for multiple hooks (#338)
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxymVlasov committed Feb 10, 2022
1 parent c266d40 commit 579dc45
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 0 deletions.
18 changes: 18 additions & 0 deletions hooks/terraform_tfsec.sh
Expand Up @@ -43,4 +43,22 @@ function per_dir_hook_unique_part {
return $exit_code
}

#######################################################################
# Unique part of `common::per_dir_hook`. The function is executed one time
# in the root git repo
# Arguments:
# args (string with array) arguments that configure wrapped tool behavior
#######################################################################
function run_hook_on_whole_repo {
local -r args="$1"

# pass the arguments to hook
# shellcheck disable=SC2068 # hook fails when quoting is used ("$arg[@]")
tfsec "$(pwd)" ${args[@]}

# return exit code to common::per_dir_hook
local exit_code=$?
return $exit_code
}

[ "${BASH_SOURCE[0]}" != "$0" ] || main "$@"
18 changes: 18 additions & 0 deletions hooks/terragrunt_fmt.sh
Expand Up @@ -40,4 +40,22 @@ function per_dir_hook_unique_part {
return $exit_code
}

#######################################################################
# Unique part of `common::per_dir_hook`. The function is executed one time
# in the root git repo
# Arguments:
# args (string with array) arguments that configure wrapped tool behavior
#######################################################################
function run_hook_on_whole_repo {
local -r args="$1"

# pass the arguments to hook
# shellcheck disable=SC2068 # hook fails when quoting is used ("$arg[@]")
terragrunt hclfmt "$(pwd)" ${args[@]}

# return exit code to common::per_dir_hook
local exit_code=$?
return $exit_code
}

[ "${BASH_SOURCE[0]}" != "$0" ] || main "$@"
18 changes: 18 additions & 0 deletions hooks/terragrunt_validate.sh
Expand Up @@ -40,4 +40,22 @@ function per_dir_hook_unique_part {
return $exit_code
}

#######################################################################
# Unique part of `common::per_dir_hook`. The function is executed one time
# in the root git repo
# Arguments:
# args (string with array) arguments that configure wrapped tool behavior
#######################################################################
function run_hook_on_whole_repo {
local -r args="$1"

# pass the arguments to hook
# shellcheck disable=SC2068 # hook fails when quoting is used ("$arg[@]")
terragrunt run-all validate ${args[@]}

# return exit code to common::per_dir_hook
local exit_code=$?
return $exit_code
}

[ "${BASH_SOURCE[0]}" != "$0" ] || main "$@"

0 comments on commit 579dc45

Please sign in to comment.