Skip to content

Commit b9002aa

Browse files
committed
terraform-providers: Only update to latest stable version
1 parent f97c5c8 commit b9002aa

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

pkgs/applications/networking/cluster/terraform-providers/update-provider

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#
99
set -euo pipefail
1010
shopt -s inherit_errexit
11+
set -x
1112

1213
show_usage() {
1314
cat <<DOC
@@ -97,6 +98,10 @@ echo_provider() {
9798
echo "== terraform-providers.${provider}: $* =="
9899
}
99100

101+
is_stable_version() {
102+
[[ $1 =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]
103+
}
104+
100105
pushd "$(dirname "$0")" >/dev/null
101106

102107
if [[ ${provider} =~ ^[^/]+/[^/]+$ ]]; then
@@ -112,10 +117,19 @@ fi
112117

113118
homepage="$(read_attr homepage)"
114119

115-
registry_response=$(curl -s "${homepage//providers/v1/providers}")
116-
117120
old_rev="$(read_attr rev)"
118-
rev="$(jq -r '.tag' <<<"${registry_response}")"
121+
registry_response_unstable=$(curl -s "${homepage//providers/v1/providers}")
122+
123+
if is_stable_version "${old_rev}"; then
124+
version_stable=$(jq -r '.versions | map(select(test("^[0-9]+\\.[0-9]+\\.[0-9]+$"))) | last' <<<${registry_response_unstable})
125+
registry_response_stable=$(curl -s "${homepage//providers/v1/providers}/${version_stable}")
126+
rev="$(jq -r '.tag' <<<${registry_response_stable})"
127+
registry_response=$registry_response_stable
128+
else
129+
rev="$(jq -r '.tag' <<<${registry_response_unstable})"
130+
registry_response=$registry_response_unstable
131+
fi
132+
119133
if [[ ${force} != 1 ]]; then
120134
if [[ ${old_rev} == "${rev}" ]]; then
121135
echo_provider "already at version ${rev}"

0 commit comments

Comments
 (0)