Skip to content

Commit cda281f

Browse files
authored
Merge branch 'master' into historical-state-pathdb
2 parents af8ce87 + 001b377 commit cda281f

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

scripts/check-build.sh

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ NC='\033[0m' # No Color
1010

1111
node_version_needed="v24"
1212
rust_version_needed="1.88.0"
13-
golangci_lint_version_needed="2.3.0"
13+
golangci_lint_version_needed="2.4.0"
1414

1515
if [[ -f go.mod ]]; then
1616
go_version_needed=$(grep "^go " go.mod | awk '{print $2}')
@@ -30,6 +30,35 @@ command_exists() {
3030
command -v "$1" >/dev/null 2>&1
3131
}
3232

33+
# compare_versions <needed> <installed> [min|exact]
34+
# - needed may be major.minor OR major.minor.patch
35+
# - mode=min : installed >= needed
36+
# - mode=exact: installed == needed
37+
compare_versions() {
38+
local n="$1" i="$2" mode="${3:-min}"
39+
40+
# If installed has no patch, append .0
41+
[[ "$i" =~ ^[0-9]+\.[0-9]+$ ]] && i="${i}.0"
42+
43+
IFS='.' read -r iM iN iP <<<"$i"
44+
45+
if [[ "$n" == *.*.* ]]; then
46+
IFS='.' read -r nM nN nP <<<"$n"
47+
if [[ "$mode" == "exact" ]]; then
48+
(( iM==nM && iN==nN && iP==nP ))
49+
else
50+
(( iM>nM )) || { (( iM==nM && iN>nN )); } || { (( iM==nM && iN==nN && iP>=nP )); }
51+
fi
52+
else
53+
IFS='.' read -r nM nN <<<"$n"
54+
if [[ "$mode" == "exact" ]]; then
55+
(( iM==nM && iN==nN ))
56+
else
57+
(( iM>nM )) || { (( iM==nM && iN>=nN )); }
58+
fi
59+
fi
60+
}
61+
3362
EXIT_CODE=0
3463

3564
# Detect operating system
@@ -93,7 +122,7 @@ for pkg in "${prerequisites[@]}"; do
93122
[[ "$pkg" == "wasm2wat" ]] && display_name="wabt"
94123
[[ "$pkg" == "clang" ]] && display_name="llvm"
95124
[[ "$pkg" == "wasm-ld" ]] && display_name="lld"
96-
125+
97126
if command_exists "$pkg"; then
98127
exists=true
99128
else
@@ -139,7 +168,7 @@ fi
139168
# Check Go version
140169
if command_exists go; then
141170
GO_INSTALLED_VERSION=$(go version | awk '{print $3}' | sed 's/go//')
142-
if [[ "$GO_INSTALLED_VERSION" == "$go_version_needed" ]]; then
171+
if compare_versions "$go_version_needed" "$GO_INSTALLED_VERSION" "min"; then
143172
echo -e "${GREEN}Go version $go_version_needed is installed.${NC}"
144173
else
145174
echo -e "${RED}Go version $go_version_needed not installed.${NC}"

0 commit comments

Comments
 (0)