2020-02-19 08:06:35 +08:00
|
|
|
#!/usr/bin/env bash
|
2020-12-18 05:16:04 +08:00
|
|
|
set -euo pipefail
|
2020-02-19 08:06:35 +08:00
|
|
|
|
2020-04-30 19:52:54 +08:00
|
|
|
pushd() {
|
2021-06-29 00:36:55 +08:00
|
|
|
builtin pushd "$@" > /dev/null
|
2020-04-30 19:52:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
popd() {
|
2021-06-29 00:36:55 +08:00
|
|
|
builtin popd > /dev/null
|
2020-04-30 19:52:54 +08:00
|
|
|
}
|
|
|
|
|
2020-05-12 05:08:22 +08:00
|
|
|
vscode_version() {
|
2022-03-15 10:37:29 +08:00
|
|
|
jq -r .version lib/vscode/package.json
|
2020-05-12 05:08:22 +08:00
|
|
|
}
|
|
|
|
|
2020-04-30 19:52:54 +08:00
|
|
|
os() {
|
2022-08-05 00:03:28 +08:00
|
|
|
osname=$(uname | tr '[:upper:]' '[:lower:]')
|
|
|
|
case $osname in
|
|
|
|
linux)
|
|
|
|
# Alpine's ldd doesn't have a version flag but if you use an invalid flag
|
|
|
|
# (like --version) it outputs the version to stderr and exits with 1.
|
|
|
|
# TODO: Better to check /etc/os-release; see ../install.sh.
|
|
|
|
ldd_output=$(ldd --version 2>&1 || true)
|
|
|
|
if echo "$ldd_output" | grep -iq musl; then
|
|
|
|
osname="alpine"
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
darwin) osname="macos" ;;
|
|
|
|
cygwin* | mingw*) osname="windows" ;;
|
|
|
|
esac
|
|
|
|
echo "$osname"
|
2020-04-30 19:52:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
arch() {
|
2021-06-18 01:28:54 +08:00
|
|
|
cpu="$(uname -m)"
|
|
|
|
case "$cpu" in
|
2022-08-05 00:03:28 +08:00
|
|
|
aarch64) cpu=arm64 ;;
|
|
|
|
x86_64) cpu=amd64 ;;
|
2020-04-30 19:52:54 +08:00
|
|
|
esac
|
2022-08-05 00:03:28 +08:00
|
|
|
echo "$cpu"
|
2020-02-19 08:06:35 +08:00
|
|
|
}
|
2020-05-12 05:08:22 +08:00
|
|
|
|
2020-05-16 22:55:46 +08:00
|
|
|
rsync() {
|
|
|
|
command rsync -a --del "$@"
|
|
|
|
}
|
|
|
|
|
|
|
|
ARCH="$(arch)"
|
|
|
|
export ARCH
|
|
|
|
OS=$(os)
|
|
|
|
export OS
|
|
|
|
|
|
|
|
# RELEASE_PATH is the destination directory for the release from the root.
|
|
|
|
# Defaults to release
|
|
|
|
RELEASE_PATH="${RELEASE_PATH-release}"
|