This repository was archived by the owner on Nov 30, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed
codespaces-linux/.devcontainer/library-scripts
go/.devcontainer/library-scripts Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -170,18 +170,26 @@ if [ "${TARGET_GO_VERSION}" != "none" ] && ! type go > /dev/null 2>&1; then
170
170
set -e
171
171
if [ " $exit_code " != " 0" ]; then
172
172
echo " (!) Download failed."
173
- # Try one break fix version number less if we get a failure
173
+ # Try one break fix version number less if we get a failure. Use "set +e" since "set -e" can cause failures in valid scenarios.
174
+ set +e
174
175
major=" $( echo " ${TARGET_GO_VERSION} " | grep -oE ' ^[0-9]+' || echo ' ' ) "
175
176
minor=" $( echo " ${TARGET_GO_VERSION} " | grep -oP ' ^[0-9]+\.\K[0-9]+' || echo ' ' ) "
176
177
breakfix=" $( echo " ${TARGET_GO_VERSION} " | grep -oP ' ^[0-9]+\.[0-9]+\.\K[0-9]+' 2> /dev/null || echo ' ' ) "
178
+ # Handle Go's odd version pattern where "0" releases omit the last part
177
179
if [ " ${breakfix} " = " " ] || [ " ${breakfix} " = " 0" ]; then
178
180
(( minor= minor- 1 ))
179
181
TARGET_GO_VERSION=" ${major} .${minor} "
182
+ # Look for latest version from previous minor release
180
183
find_version_from_git_tags TARGET_GO_VERSION " https://go.googlesource.com/go" " tags/go" " ." " true"
181
184
else
182
185
(( breakfix= breakfix- 1 ))
183
- TARGET_GO_VERSION=" ${major} .${minor} .${breakfix} "
186
+ if [ " ${breakfix} " = " 0" ]; then
187
+ TARGET_GO_VERSION=" ${major} .${minor} "
188
+ else
189
+ TARGET_GO_VERSION=" ${major} .${minor} .${breakfix} "
190
+ fi
184
191
fi
192
+ set -e
185
193
echo " Trying ${TARGET_GO_VERSION} ..."
186
194
curl -fsSL -o /tmp/go.tar.gz " https://golang.org/dl/go${TARGET_GO_VERSION} .linux-${architecture} .tar.gz"
187
195
fi
Original file line number Diff line number Diff line change @@ -170,18 +170,26 @@ if [ "${TARGET_GO_VERSION}" != "none" ] && ! type go > /dev/null 2>&1; then
170
170
set -e
171
171
if [ " $exit_code " != " 0" ]; then
172
172
echo " (!) Download failed."
173
- # Try one break fix version number less if we get a failure
173
+ # Try one break fix version number less if we get a failure. Use "set +e" since "set -e" can cause failures in valid scenarios.
174
+ set +e
174
175
major=" $( echo " ${TARGET_GO_VERSION} " | grep -oE ' ^[0-9]+' || echo ' ' ) "
175
176
minor=" $( echo " ${TARGET_GO_VERSION} " | grep -oP ' ^[0-9]+\.\K[0-9]+' || echo ' ' ) "
176
177
breakfix=" $( echo " ${TARGET_GO_VERSION} " | grep -oP ' ^[0-9]+\.[0-9]+\.\K[0-9]+' 2> /dev/null || echo ' ' ) "
178
+ # Handle Go's odd version pattern where "0" releases omit the last part
177
179
if [ " ${breakfix} " = " " ] || [ " ${breakfix} " = " 0" ]; then
178
180
(( minor= minor- 1 ))
179
181
TARGET_GO_VERSION=" ${major} .${minor} "
182
+ # Look for latest version from previous minor release
180
183
find_version_from_git_tags TARGET_GO_VERSION " https://go.googlesource.com/go" " tags/go" " ." " true"
181
184
else
182
185
(( breakfix= breakfix- 1 ))
183
- TARGET_GO_VERSION=" ${major} .${minor} .${breakfix} "
186
+ if [ " ${breakfix} " = " 0" ]; then
187
+ TARGET_GO_VERSION=" ${major} .${minor} "
188
+ else
189
+ TARGET_GO_VERSION=" ${major} .${minor} .${breakfix} "
190
+ fi
184
191
fi
192
+ set -e
185
193
echo " Trying ${TARGET_GO_VERSION} ..."
186
194
curl -fsSL -o /tmp/go.tar.gz " https://golang.org/dl/go${TARGET_GO_VERSION} .linux-${architecture} .tar.gz"
187
195
fi
You can’t perform that action at this time.
0 commit comments