mirror of
https://github.com/ipfs/kubo.git
synced 2025-05-17 15:06:47 +08:00

Set supported platforms correctly by go version (no darwin-386 for >=1.15, no darwin-arm64 unless >=1.16), make check-go-version work on mac License: MIT Signed-off-by: hannahhoward <hannah@hannahhoward.net>
78 lines
2.5 KiB
Bash
Executable File
78 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
if test "x$UPGRADE_MSG" = "x"; then
|
|
printf >&2 "fatal: Please set '"'$UPGRADE_MSG'"' before sourcing this script\n"
|
|
exit 1
|
|
fi
|
|
|
|
die_upgrade() {
|
|
printf >&2 "fatal: %s\n" "$@"
|
|
printf >&2 "=> %s\n" "$UPGRADE_MSG"
|
|
exit 1
|
|
}
|
|
|
|
major_number() {
|
|
vers="$1"
|
|
|
|
# Hack around 'expr' exiting with code 1 when it outputs 0
|
|
case "$vers" in
|
|
0) echo "0" ;;
|
|
0.*) echo "0" ;;
|
|
*) expr "$vers" : "\([^.]*\).*" || return 1
|
|
esac
|
|
}
|
|
|
|
check_at_least_version() {
|
|
MIN_VERS="$1"
|
|
CUR_VERS="$2"
|
|
PROG_NAME="$3"
|
|
|
|
# Get major, minor and fix numbers for each version
|
|
MIN_MAJ=$(major_number "$MIN_VERS") || die "No major version number in '$MIN_VERS' for '$PROG_NAME'"
|
|
CUR_MAJ=$(major_number "$CUR_VERS") || die "No major version number in '$CUR_VERS' for '$PROG_NAME'"
|
|
|
|
# We expect a version to be of form X.X.X
|
|
# if the second dot doesn't match, we consider it a prerelease
|
|
|
|
if MIN_MIN=$(expr "$MIN_VERS" : "[^.]*\.\([0-9][0-9]*\)"); then
|
|
# this captured digit is necessary, since expr returns code 1 if the output is empty
|
|
if expr "$MIN_VERS" : "[^.]*\.[0-9]*\([0-9]\.\|[0-9]\$\)" >/dev/null; then
|
|
MIN_PRERELEASE="0"
|
|
else
|
|
MIN_PRERELEASE="1"
|
|
fi
|
|
MIN_FIX=$(expr "$MIN_VERS" : "[^.]*\.[0-9][0-9]*[^0-9][^0-9]*\([0-9][0-9]*\)") || MIN_FIX="0"
|
|
else
|
|
MIN_MIN="0"
|
|
MIN_PRERELEASE="0"
|
|
MIN_FIX="0"
|
|
fi
|
|
if CUR_MIN=$(expr "$CUR_VERS" : "[^.]*\.\([0-9][0-9]*\)"); then
|
|
# this captured digit is necessary, since expr returns code 1 if the output is empty
|
|
if expr "$CUR_VERS" : "[^.]*\.[0-9]*\([0-9]\.\|[0-9]\$\)" >/dev/null; then
|
|
CUR_PRERELEASE="0"
|
|
else
|
|
CUR_PRERELEASE="1"
|
|
fi
|
|
CUR_FIX=$(expr "$CUR_VERS" : "[^.]*\.[0-9][0-9]*[^0-9][^0-9]*\([0-9][0-9]*\)") || CUR_FIX="0"
|
|
else
|
|
CUR_MIN="0"
|
|
CUR_PRERELEASE="0"
|
|
CUR_FIX="0"
|
|
fi
|
|
|
|
# Compare versions
|
|
VERS_LEAST="$PROG_NAME version '$CUR_VERS' should be at least '$MIN_VERS'"
|
|
test "$CUR_MAJ" -lt "$MIN_MAJ" && die_upgrade "$VERS_LEAST"
|
|
test "$CUR_MAJ" -gt "$MIN_MAJ" || {
|
|
test "$CUR_MIN" -lt "$MIN_MIN" && die_upgrade "$VERS_LEAST"
|
|
test "$CUR_MIN" -gt "$MIN_MIN" || {
|
|
test "$CUR_PRERELEASE" -gt "$MIN_PRERELEASE" && die_upgrade "$VERS_LEAST"
|
|
test "$CUR_PRERELEASE" -lt "$MIN_PRERELEASE" || {
|
|
test "$CUR_FIX" -lt "$MIN_FIX" && die_upgrade "$VERS_LEAST"
|
|
true
|
|
}
|
|
}
|
|
}
|
|
}
|