2018-05-16 20:04:48 +02:00
#!/usr/bin/env bash
set -e
declare -a paths
declare -a tfvars_files
index = 0
for file_with_path in " $@ " ; do
file_with_path = " ${ file_with_path // /__REPLACED__SPACE__ } "
paths[ index] = $( dirname " $file_with_path " )
if [ [ " $file_with_path " = = *".tfvars" ] ] ; then
tfvars_files += ( " $file_with_path " )
fi
let "index+=1"
done
readonly tmp_file = " tmp_ $( date | md5) .txt "
2018-05-16 21:57:49 +02:00
readonly text_file = "README.md"
2018-05-16 20:04:48 +02:00
for path_uniq in $( echo " ${ paths [*] } " | tr ' ' '\n' | sort -u) ; do
path_uniq = " ${ path_uniq //__REPLACED__SPACE__/ } "
pushd " $path_uniq " > /dev/null
2018-05-16 21:57:49 +02:00
if [ [ ! -f " $text_file " ] ] ; then
2018-05-16 21:58:40 +02:00
popd > /dev/null
2018-05-16 21:57:49 +02:00
continue
fi
2018-05-16 20:04:48 +02:00
terraform-docs md ./ > " $tmp_file "
# Replace content between markers with the placeholder - http://fahdshariff.blogspot.no/2012/12/sed-mutli-line-replacement-between-two.html
2018-05-16 21:57:49 +02:00
sed -i -n '/BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK/{p;:a;N;/END OF PRE-COMMIT-TERRAFORM DOCS HOOK/!ba;s/.*\n/I_WANT_TO_BE_REPLACED\n/};p' " $text_file "
2018-05-16 20:04:48 +02:00
# Replace placeholder with the content of the file - https://stackoverflow.com/a/31057013/550451
2018-05-16 21:57:49 +02:00
sed -i -e " /I_WANT_TO_BE_REPLACED/r $tmp_file " -e "//d" " $text_file "
2018-05-16 20:04:48 +02:00
rm -f " $tmp_file "
popd > /dev/null
done