mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
chore: update quick run script (resolve #400)
This commit is contained in:
parent
cec2a84e2d
commit
7e5c00d0ae
137
scripts/get.sh
137
scripts/get.sh
@ -15,54 +15,163 @@
|
||||
set -e -u
|
||||
|
||||
githubLatestTag() {
|
||||
finalUrl=$(curl "https://github.com/$1/releases/latest" -s -L -I -o /dev/null -w '%{url_effective}')
|
||||
printf "%s\n" "${finalUrl##*/}"
|
||||
latestJSON="$( eval "$http 'https://api.github.com/repos/$1/releases/latest'" 2>/dev/null )" || true
|
||||
|
||||
versionNumber=''
|
||||
if ! echo "$latestJSON" | grep 'API rate limit exceeded' >/dev/null 2>&1 ; then
|
||||
if ! versionNumber="$( echo "$latestJSON" | grep -oEm1 '[0-9]+[.][0-9]+[.][0-9]+' - 2>/dev/null )" ; then
|
||||
versionNumber=''
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${versionNumber:-x}" = "x" ] ; then
|
||||
# Try to fallback to previous latest version detection method if curl is available
|
||||
if command -v curl >/dev/null 2>&1 ; then
|
||||
if finalUrl="$( curl "https://github.com/$1/releases/latest" -s -L -I -o /dev/null -w '%{url_effective}' 2>/dev/null )" ; then
|
||||
trimmedVers="${finalUrl##*v}"
|
||||
if [ "${trimmedVers:-x}" != "x" ] ; then
|
||||
echo "$trimmedVers"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
cat 1>&2 << 'EOA'
|
||||
/=====================================\\
|
||||
| FAILED TO HTTP DOWNLOAD FILE |
|
||||
\\=====================================/
|
||||
|
||||
Uh oh! We couldn't download needed internet resources for you. Perhaps you are
|
||||
offline, your DNS servers are not set up properly, your internet plan doesn't
|
||||
include GitHub, or the GitHub servers are down?
|
||||
|
||||
EOA
|
||||
exit 1
|
||||
else
|
||||
echo "$versionNumber"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "${GETMICRO_HTTP:-x}" != "x" ]; then
|
||||
http="$GETMICRO_HTTP"
|
||||
elif command -v curl >/dev/null 2>&1 ; then
|
||||
http="curl -L"
|
||||
elif command -v wget >/dev/null 2>&1 ; then
|
||||
http="wget -O-"
|
||||
else
|
||||
cat 1>&2 << 'EOA'
|
||||
/=====================================\\
|
||||
| COULD NOT FIND HTTP PROGRAM |
|
||||
\\=====================================/
|
||||
|
||||
Uh oh! We couldn't find either curl or wget installed on your system.
|
||||
|
||||
To continue with installation, you have two options:
|
||||
|
||||
A. Install either wget or curl on your system. You may need to run `hash -r`.
|
||||
|
||||
B. Define GETMICRO_HTTP to be a command (with arguments deliminated by spaces)
|
||||
that both follows HTTP redirects AND prints the fetched content to stdout.
|
||||
|
||||
For examples of option B, this script uses the below values for wget and curl:
|
||||
|
||||
$ curl https://wakapi.dev/get | GETMICRO_HTTP="curl -L" sh
|
||||
|
||||
$ wget -O- https://wakapi.dev/get | GETMICRO_HTTP="wget -O-" sh
|
||||
|
||||
EOA
|
||||
exit 1
|
||||
fi
|
||||
|
||||
platform=''
|
||||
machine=$(uname -m) # currently, Wakapi builds are only available for AMD64 anyway
|
||||
machine=$(uname -m)
|
||||
|
||||
if [ "${GETWAKAPI_PLATFORM:-x}" != "x" ]; then
|
||||
platform="$GETWAKAPI_PLATFORM"
|
||||
else
|
||||
case "$(uname -s | tr '[:upper:]' '[:lower:]')" in
|
||||
"linux") platform='linux_amd64' ;;
|
||||
"msys"*|"cygwin"*|"mingw"*|*"_nt"*|"win"*) platform='win_amd64' ;;
|
||||
"linux")
|
||||
case "$machine" in
|
||||
"arm64"* | "aarch64"* ) platform='linux_arm64' ;;
|
||||
*"64") platform='linux_amd64' ;;
|
||||
esac
|
||||
;;
|
||||
"darwin")
|
||||
case "$machine" in
|
||||
"arm64"* | "aarch64"* ) platform='darwin_arm64' ;;
|
||||
*"64") platform='darwin_amd64' ;;
|
||||
esac;;
|
||||
"msys"*|"cygwin"*|"mingw"*|*"_nt"*|"win"*)
|
||||
case "$machine" in
|
||||
"arm64"* | "aarch64"* ) platform='win_arm64' ;;
|
||||
*"64") platform='win_amd64' ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$platform" = "x" ]; then
|
||||
cat << 'EOM'
|
||||
if [ "${platform:-x}" = "x" ]; then
|
||||
cat 1>&2 << 'EOM'
|
||||
/=====================================\\
|
||||
| COULD NOT DETECT PLATFORM |
|
||||
\\=====================================/
|
||||
|
||||
Uh oh! We couldn't automatically detect your operating system. You can file a
|
||||
bug here: https://github.com/muety/wakapi
|
||||
|
||||
To continue with installation, please choose from one of the following values:
|
||||
|
||||
- win_amd64
|
||||
- darwin_amd64
|
||||
- linux_amd64
|
||||
|
||||
Export your selection as the GETWAKAPI_PLATFORM environment variable, and then
|
||||
re-run this script.
|
||||
|
||||
For example:
|
||||
|
||||
$ curl https://getmic.ro | GETWAKAPI_PLATFORM=linux_amd64 sh
|
||||
|
||||
EOM
|
||||
exit 1
|
||||
else
|
||||
printf "Detected platform: %s\n" "$platform"
|
||||
echo "Detected platform: $platform"
|
||||
fi
|
||||
|
||||
TAG=$(githubLatestTag muety/wakapi)
|
||||
|
||||
printf "Tag: %s" "$TAG"
|
||||
if command -v grep >/dev/null 2>&1 ; then
|
||||
if ! echo "v$TAG" | grep -E '^v[0-9]+[.][0-9]+[.][0-9]+$' >/dev/null 2>&1 ; then
|
||||
cat 1>&2 << 'EOM'
|
||||
/=====================================\\
|
||||
| INVALID TAG RECIEVED |
|
||||
\\=====================================/
|
||||
|
||||
Uh oh! We recieved an invalid tag and cannot be sure that the tag will not break
|
||||
this script.
|
||||
|
||||
Please open an issue on GitHub at https://github.com/muety/wakapi with
|
||||
the invalid tag included:
|
||||
|
||||
EOM
|
||||
echo "> $TAG" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
extension='zip'
|
||||
|
||||
printf "Latest Version: %s\n" "$TAG"
|
||||
printf "Downloading https://github.com/muety/wakapi/releases/download/%s/wakapi_%s.%s\n" "$TAG" "$platform" "$extension"
|
||||
echo "Latest Version: $TAG"
|
||||
echo "Downloading https://github.com/muety/wakapi/releases/download/$TAG/wakapi_$platform.$extension"
|
||||
|
||||
curl -L "https://github.com/muety/wakapi/releases/download/$TAG/wakapi_$platform.$extension" > "wakapi.$extension"
|
||||
eval "$http 'https://github.com/muety/wakapi/releases/download/$TAG/wakapi_$platform.$extension'" > "wakapi.$extension"
|
||||
|
||||
case "$extension" in
|
||||
"zip") unzip -j "wakapi.$extension" -d "wakapi-$TAG" ;;
|
||||
"tar.gz") tar -xvzf "wakapi.$extension" "wakapi-$TAG/wakapi" ;;
|
||||
esac
|
||||
|
||||
mv "wakapi-$TAG/wakapi" ./wakapi
|
||||
mv "wakapi-$TAG/config.yml" ./config.yml
|
||||
mv wakapi-$TAG/* .
|
||||
|
||||
rm "wakapi.$extension"
|
||||
rm -rf "wakapi-$TAG"
|
||||
|
Loading…
Reference in New Issue
Block a user