mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 13:03:46 +00:00
87 lines
2.2 KiB
Bash
Executable file
87 lines
2.2 KiB
Bash
Executable file
#!/bin/sh
|
|
# shellcheck enable=add-default-case
|
|
# shellcheck enable=avoid-nullary-conditions
|
|
# shellcheck enable=check-unassigned-uppercase
|
|
# shellcheck enable=deprecate-which
|
|
# shellcheck enable=quote-safe-variables
|
|
# shellcheck enable=require-variable-braces
|
|
set -eu
|
|
|
|
WORK_DIR="/tmp/sandbox_agent_install"
|
|
rm -rf "$WORK_DIR"
|
|
mkdir -p "$WORK_DIR"
|
|
cd "$WORK_DIR"
|
|
|
|
SANDBOX_AGENT_VERSION="${SANDBOX_AGENT_VERSION:-__VERSION__}"
|
|
SANDBOX_AGENT_BASE_URL="${SANDBOX_AGENT_BASE_URL:-https://releases.rivet.dev}"
|
|
UNAME="$(uname -s)"
|
|
ARCH="$(uname -m)"
|
|
|
|
if [ "$(printf '%s' "$UNAME" | cut -c 1-6)" = "Darwin" ]; then
|
|
if [ "$ARCH" = "x86_64" ]; then
|
|
FILE_NAME="sandbox-agent-x86_64-apple-darwin"
|
|
elif [ "$ARCH" = "arm64" ]; then
|
|
FILE_NAME="sandbox-agent-aarch64-apple-darwin"
|
|
else
|
|
echo "Unknown arch $ARCH" 1>&2
|
|
exit 1
|
|
fi
|
|
elif [ "$(printf '%s' "$UNAME" | cut -c 1-5)" = "Linux" ]; then
|
|
if [ "$ARCH" = "x86_64" ]; then
|
|
FILE_NAME="sandbox-agent-x86_64-unknown-linux-musl"
|
|
else
|
|
echo "Unsupported Linux arch $ARCH" 1>&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Unable to determine platform" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
set +u
|
|
if [ -z "$BIN_DIR" ]; then
|
|
BIN_DIR="/usr/local/bin"
|
|
fi
|
|
set -u
|
|
|
|
INSTALL_PATH="$BIN_DIR/sandbox-agent"
|
|
|
|
if [ ! -d "$BIN_DIR" ]; then
|
|
CHECK_DIR="$BIN_DIR"
|
|
while [ ! -d "$CHECK_DIR" ] && [ "$CHECK_DIR" != "/" ]; do
|
|
CHECK_DIR=$(dirname "$CHECK_DIR")
|
|
done
|
|
|
|
if [ ! -w "$CHECK_DIR" ]; then
|
|
echo "> Creating directory $BIN_DIR (requires sudo)"
|
|
sudo mkdir -p "$BIN_DIR"
|
|
else
|
|
echo "> Creating directory $BIN_DIR"
|
|
mkdir -p "$BIN_DIR"
|
|
fi
|
|
fi
|
|
|
|
URL="$SANDBOX_AGENT_BASE_URL/sandbox-agent/${SANDBOX_AGENT_VERSION}/${FILE_NAME}"
|
|
echo "> Downloading $URL"
|
|
|
|
curl -fsSL "$URL" -o sandbox-agent
|
|
chmod +x sandbox-agent
|
|
|
|
if [ ! -w "$BIN_DIR" ]; then
|
|
echo "> Installing sandbox-agent to $INSTALL_PATH (requires sudo)"
|
|
sudo mv ./sandbox-agent "$INSTALL_PATH"
|
|
else
|
|
echo "> Installing sandbox-agent to $INSTALL_PATH"
|
|
mv ./sandbox-agent "$INSTALL_PATH"
|
|
fi
|
|
|
|
case ":$PATH:" in
|
|
*:$BIN_DIR:*) ;;
|
|
*)
|
|
echo "WARNING: $BIN_DIR is not in \$PATH"
|
|
echo "For instructions on how to add it to your PATH, visit:"
|
|
echo "https://opensource.com/article/17/6/set-path-linux"
|
|
;;
|
|
esac
|
|
|
|
echo "sandbox-agent installed successfully."
|