59 lines
1.7 KiB
Bash
59 lines
1.7 KiB
Bash
#!/bin/bash
|
|
#<pre><code>
|
|
set -e
|
|
set -u
|
|
|
|
# minimal os detection
|
|
my_os="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
|
|
|
# https://github.com/golang/go/wiki/GoArm#supported-architectures
|
|
# minimal cpu arch detection
|
|
my_arch="$(uname -m)"
|
|
if [ "x86_64" == "$my_arch" ]; then
|
|
my_arch="amd64"
|
|
elif [ "i386" == "$my_arch" ]; then
|
|
my_arch="386"
|
|
elif [ -n "$($my_arch | grep arm)" ]; then
|
|
if [ -n "$(uname -a | grep aarch64)" ]; then
|
|
my_arch="arm64"
|
|
elif [ -n "$(uname -a | grep armv8l)" ]; then
|
|
my_arch="arm64"
|
|
elif [ -n "$(uname -a | grep armv7l)" ]; then
|
|
my_arch="armv7l"
|
|
elif [ -n "$(uname -a | grep armv6l)" ]; then
|
|
my_arch="armv6l"
|
|
else
|
|
echo "could not determine arm cpu architecture" >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "could not determine cpu architecture" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# get optify for this cpu and arch
|
|
if [ -z "${OPTIFY_VERSION:-}" ]; then
|
|
latest_version="$(curl -fsSL https://telebit.cloud/optify/latest)"
|
|
OPTIFY_VERSION=$latest_version
|
|
echo "Installing optify-$OPTIFY_VERSION (latest)"
|
|
else
|
|
echo "Installing optify OPTIFY_VERSION=$OPTIFY_VERSION"
|
|
fi
|
|
|
|
# download to a tmp folder
|
|
#my_tmpdir="$(mktemp -d /tmp/optify.XXXXXXXX)"
|
|
my_tmpdir="$(mktemp -d -t optify.XXXXXXXX)"
|
|
my_url="https://telebit.cloud/optify/dist/${my_os}/${my_arch}/optify-${OPTIFY_VERSION}"
|
|
if [ -n "$(type -p curl || true)" ]; then
|
|
my_out="$(curl -fsSL -o "$my_tmpdir/optify-${OPTIFY_VERSION}" "$my_url" || true)"
|
|
elif [ -n "$(type -p wget || true)" ]; then
|
|
my_out="$(wget -q -c "$my_url" -O "$my_tmpdir/optify-${OPTIFY_VERSION}" || true)"
|
|
else
|
|
echo "found neither wget nor curl" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# check for downloader success
|
|
chmod a+x "$my_tmpdir/optify-${OPTIFY_VERSION}"
|
|
"$my_tmpdir/optify-${OPTIFY_VERSION}" --install
|