53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
CHRONOSEAL_VERSION="${CHRONOSEAL_VERSION:-latest}"
|
|
CHRONOSEAL_INSTALL_DIR="${CHRONOSEAL_INSTALL_DIR:-/usr/local/bin}"
|
|
CHRONOSEAL_BASE_URL="${CHRONOSEAL_BASE_URL:-https://get.chronoseal.rs/releases}"
|
|
|
|
need() {
|
|
command -v "$1" >/dev/null 2>&1 || {
|
|
echo "chronoseal installer: missing required command: $1" >&2
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
need uname
|
|
need mktemp
|
|
need chmod
|
|
|
|
arch="$(uname -m)"
|
|
case "$arch" in
|
|
x86_64|amd64) target="x86_64-unknown-linux-musl" ;;
|
|
aarch64|arm64) target="aarch64-unknown-linux-musl" ;;
|
|
*) echo "chronoseal installer: unsupported architecture: $arch" >&2; exit 1 ;;
|
|
esac
|
|
|
|
if command -v curl >/dev/null 2>&1; then
|
|
fetch="curl --proto =https --tlsv1.2 -fsSL"
|
|
elif command -v wget >/dev/null 2>&1; then
|
|
fetch="wget -qO-"
|
|
else
|
|
echo "chronoseal installer: install curl or wget" >&2
|
|
exit 1
|
|
fi
|
|
|
|
tmp="$(mktemp -d)"
|
|
trap 'rm -rf "$tmp"' EXIT
|
|
|
|
url="$CHRONOSEAL_BASE_URL/$CHRONOSEAL_VERSION/chronoseal-$target.tar.gz"
|
|
echo "downloading chronoseal $CHRONOSEAL_VERSION for $target"
|
|
|
|
# shellcheck disable=SC2086
|
|
$fetch "$url" | tar -xz -C "$tmp"
|
|
chmod 0755 "$tmp/chronoseal"
|
|
|
|
if [ "$(id -u)" -eq 0 ]; then
|
|
install -m 0755 "$tmp/chronoseal" "$CHRONOSEAL_INSTALL_DIR/chronoseal"
|
|
else
|
|
sudo install -m 0755 "$tmp/chronoseal" "$CHRONOSEAL_INSTALL_DIR/chronoseal"
|
|
fi
|
|
|
|
echo "installed: $CHRONOSEAL_INSTALL_DIR/chronoseal"
|
|
echo "try: chronoseal --help"
|