49 lines
1.2 KiB
Bash
Executable File
49 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
|
|
source "$(dirname $0)/utils.sh"
|
|
goto_root
|
|
|
|
function check_command() {
|
|
local cmd="$1"
|
|
if ! command -v ${cmd} > /dev/null 2>&1; then
|
|
echo "This requires ${cmd} command, please install it first."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function verlte() {
|
|
[ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
|
|
}
|
|
|
|
function verlt() {
|
|
[ "$1" = "$2" ] && return 1 || verlte $1 $2
|
|
}
|
|
|
|
function check_version() {
|
|
if [[ "$1" == "terraform" ]]; then
|
|
tmp_dir=$(mktemp -d)
|
|
cd ${tmp_dir}
|
|
cur_ver=$(terraform version | head -n 1 | cut -d' ' -f2)
|
|
cur_ver=${cur_ver#"v"}
|
|
cd - > /dev/null
|
|
rm -fr ${tmp_dir}
|
|
req_ver=$(grep required_version README.md | awk '{print $4}')
|
|
req_ver=${req_ver%'"'}
|
|
elif [[ "$1" == "terraform-docs" ]]; then
|
|
req_ver="0.6.0"
|
|
cur_ver=$(terraform-docs --version)
|
|
else
|
|
return
|
|
fi
|
|
if ! verlte $req_ver $cur_ver; then
|
|
echo "This requires at least version ${req_ver} of $1, please upgrade (current version is ${cur_ver})"
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
for cmd in terraform terraform-docs; do
|
|
check_command $cmd
|
|
check_version $cmd
|
|
done
|