Files
agent/install.sh
T
2026-07-23 09:12:00 +09:00

48 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env sh
set -eu
# Public base URL containing platform-agent-linux-amd64.tar.gz and
# platform-agent-linux-arm64.tar.gz. Keep this bootstrap free of secrets.
RELEASE_BASE_URL="${PLATFORM_AGENT_RELEASE_BASE_URL:-https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-files/public/platform-agent}"
case "$(uname -m 2>/dev/null || true)" in
x86_64|amd64) ARCH="amd64" ;;
aarch64|arm64) ARCH="arm64" ;;
*)
printf 'Unsupported CPU architecture: %s\n' "$(uname -m 2>/dev/null || printf unknown)" >&2
exit 1
;;
esac
if command -v curl >/dev/null 2>&1; then
download() { curl -fsSL "$1" -o "$2"; }
elif command -v wget >/dev/null 2>&1; then
download() { wget -qO "$2" "$1"; }
else
printf '%s\n' 'curl or wget is required to install Platform Agent.' >&2
exit 1
fi
TMP_DIR="$(mktemp -d)"
cleanup() { rm -rf "$TMP_DIR"; }
trap cleanup EXIT INT TERM
ARCHIVE_URL="${RELEASE_BASE_URL%/}/platform-agent-linux-${ARCH}.tar.gz"
ARCHIVE_PATH="$TMP_DIR/platform-agent.tar.gz"
printf 'Downloading Platform Agent for linux-%s...\n' "$ARCH"
download "$ARCHIVE_URL" "$ARCHIVE_PATH"
tar -xzf "$ARCHIVE_PATH" -C "$TMP_DIR"
PACKAGE_DIR="$TMP_DIR/platform-agent"
if [ ! -x "$PACKAGE_DIR/scripts/install.sh" ]; then
PACKAGE_DIR="$(find "$TMP_DIR" -type f -path '*/scripts/install.sh' -print -quit | sed 's#/scripts/install.sh##')"
fi
if [ -z "${PACKAGE_DIR:-}" ] || [ ! -x "$PACKAGE_DIR/scripts/install.sh" ]; then
printf '%s\n' 'Downloaded archive does not contain scripts/install.sh.' >&2
exit 1
fi
exec "$PACKAGE_DIR/scripts/install.sh"