@@ -36,21 +36,23 @@ examples:
3636
3737documentation :
3838 @echo " --> Generating documentation"
39- @terraform-docs markdown table --output-file ${PWD} /README.md --output-mode inject .
39+ @terraform-docs .
4040 $(MAKE ) documentation-modules
4141 $(MAKE ) documentation-examples
4242
4343documentation-modules :
4444 @echo " --> Generating documentation for modules"
45- @if [ -d modules ]; then \
46- find modules -type d -mindepth 1 -maxdepth 1 -exec terraform-docs markdown table --output-file README.md --output-mode inject {} \; ; \
47- fi
45+ @find . -type d -regex ' .*/modules/[a-za-z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
46+ echo " --> Generating documentation for module: $$ dir" ; \
47+ terraform-docs $$ dir; \
48+ done ;
4849
4950documentation-examples :
50- @echo " --> Generating documentation examples"
51- @if [ -d examples ]; then \
52- find examples -type d -mindepth 1 -maxdepth 1 -exec terraform-docs markdown table --output-file README.md --output-mode inject {} \; ; \
53- fi
51+ @echo " --> Generating documentation for examples"
52+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null| while read -r dir; do \
53+ echo " --> Generating documentation for example: $$ dir" ; \
54+ terraform-docs $$ dir; \
55+ done ;
5456
5557upgrade-terraform-providers :
5658 @printf " %s Upgrading Terraform providers for %-24s" " -->" " ."
@@ -59,7 +61,7 @@ upgrade-terraform-providers:
5961
6062upgrade-terraform-example-providers :
6163 @if [ -d examples ]; then \
62- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
64+ find examples -type d -mindepth 1 -maxdepth 1 2> /dev/null | while read -r dir; do \
6365 printf " %s Upgrading Terraform providers for %-24s" " -->" " $$ dir" ; \
6466 terraform -chdir=$$ dir init -upgrade > /dev/null && echo " [OK]" || echo " [FAILED]" ; \
6567 done ; \
@@ -69,29 +71,27 @@ init:
6971 @echo " --> Running terraform init"
7072 @terraform init -backend=false
7173
72- security :
74+ security : init
7375 @echo " --> Running Security checks"
7476 @trivy config .
7577 $(MAKE ) security-modules
7678 $(MAKE ) security-examples
7779
7880security-modules :
7981 @echo " --> Running Security checks on modules"
80- @if [ -d modules ]; then \
81- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
82- echo " --> Validating $$ dir" ; \
83- trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
84- done ; \
85- fi
82+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
83+ echo " --> Validating $$ dir" ; \
84+ terraform init -backend=false; \
85+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
86+ done ;
8687
8788security-examples :
8889 @echo " --> Running Security checks on examples"
89- @if [ -d examples ]; then \
90- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
91- echo " --> Validating $$ dir" ; \
92- trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
93- done ; \
94- fi
90+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
91+ echo " --> Validating $$ dir" ; \
92+ terraform init -backend=false; \
93+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
94+ done ;
9595
9696tests :
9797 @echo " --> Running Terraform Tests"
@@ -103,26 +103,28 @@ validate:
103103 @terraform validate
104104 $(MAKE ) validate-modules
105105 $(MAKE ) validate-examples
106+ $(MAKE ) validate-commits
106107
107108validate-modules :
108109 @echo " --> Running terraform validate on modules"
109- @if [ -d modules ]; then \
110- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
111- echo " --> Validating $$ dir" ; \
112- terraform -chdir=$$ dir init -backend=false; \
113- terraform -chdir=$$ dir validate; \
114- done ; \
115- fi
110+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
111+ echo " --> Validating Module $$ dir" ; \
112+ terraform -chdir=$$ dir init -backend=false; \
113+ terraform -chdir=$$ dir validate; \
114+ done ;
116115
117116validate-examples :
118117 @echo " --> Running terraform validate on examples"
119- @if [ -d examples ]; then \
120- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
121- echo " --> Validating $$ dir" ; \
122- terraform -chdir=$$ dir init -backend=false; \
123- terraform -chdir=$$ dir validate; \
124- done ; \
125- fi
118+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
119+ echo " --> Validating $$ dir" ; \
120+ terraform -chdir=$$ dir init -backend=false; \
121+ terraform -chdir=$$ dir validate; \
122+ done ;
123+
124+ validate-commits :
125+ @echo " --> Running commitlint against the main branch"
126+ @command -v commitlint > /dev/null 2>&1 || { echo " commitlint is not installed. Please install it by running 'npm install -g commitlint'" ; exit 1; }
127+ @git log --pretty=format:" %s" origin/main..HEAD | commitlint --from=origin/main
126128
127129lint :
128130 @echo " --> Running tflint"
@@ -133,31 +135,27 @@ lint:
133135
134136lint-modules :
135137 @echo " --> Running tflint on modules"
136- @if [ -d modules ]; then \
137- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
138- echo " --> Linting $$ dir" ; \
139- tflint --chdir=$$ dir --init; \
140- tflint --chdir=$$ dir -f compact; \
141- done ; \
142- fi
138+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
139+ echo " --> Linting $$ dir" ; \
140+ tflint --chdir=$$ dir --init; \
141+ tflint --chdir=$$ dir -f compact; \
142+ done ;
143143
144144lint-examples :
145145 @echo " --> Running tflint on examples"
146- @if [ -d examples ]; then \
147- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
148- echo " --> Linting $$ dir" ; \
149- tflint --chdir=$$ dir --init; \
150- tflint --chdir=$$ dir -f compact; \
151- done ; \
152- fi
146+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
147+ echo " --> Linting $$ dir" ; \
148+ tflint --chdir=$$ dir --init; \
149+ tflint --chdir=$$ dir -f compact; \
150+ done ;
153151
154152format :
155153 @echo " --> Running terraform fmt"
156154 @terraform fmt -recursive -write=true
157155
158156clean :
159157 @echo " --> Cleaning up"
160- @find . -type d -name " .terraform" | while read -r dir; do \
158+ @find . -type d -name " .terraform" 2> /dev/null | while read -r dir; do \
161159 echo " --> Removing $$ dir" ; \
162160 rm -rf $$ dir; \
163161 done
0 commit comments