Initial Release: OpenQode Public Alpha v1.3
This commit is contained in:
64
scripts/download_opencode.sh
Normal file
64
scripts/download_opencode.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Detect OS
|
||||
OS="$(uname -s)"
|
||||
case "${OS}" in
|
||||
Linux*) OS=linux;;
|
||||
Darwin*) OS=darwin;;
|
||||
*) OS="UNKNOWN:${OS}"
|
||||
esac
|
||||
|
||||
# Detect Arch
|
||||
ARCH="$(uname -m)"
|
||||
case "${ARCH}" in
|
||||
x86_64) ARCH=x64;;
|
||||
arm64) ARCH=arm64;;
|
||||
aarch64) ARCH=arm64;;
|
||||
*) ARCH="UNKNOWN:${ARCH}"
|
||||
esac
|
||||
|
||||
if [[ "$OS" == *"UNKNOWN"* ]] || [[ "$ARCH" == *"UNKNOWN"* ]]; then
|
||||
echo "❌ Unsupported platform: $OS $ARCH"
|
||||
echo "Please download manually."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BINARY_NAME="opencode-$OS-$ARCH"
|
||||
# Windows uses .exe, but we are in bash script, mostly for nix.
|
||||
# If running bash on windows (git bash), uname -s is MINGW...
|
||||
if [[ "$OS" == *"MINGW"* ]] || [[ "$OS" == *"CYGWIN"* ]]; then
|
||||
BINARY_NAME="opencode-windows-x64.exe"
|
||||
TARGET_FILE="opencode.exe"
|
||||
else
|
||||
TARGET_FILE="opencode"
|
||||
fi
|
||||
|
||||
DOWNLOAD_URL="https://github.com/sst/opencode/releases/latest/download/$BINARY_NAME"
|
||||
# Resolve script directory to handle running from root or scripts dir
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TARGET_DIR="$SCRIPT_DIR/../bin"
|
||||
FULL_TARGET="$TARGET_DIR/$TARGET_FILE"
|
||||
|
||||
# Create bin dir
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
echo "Downloading OpenCode for $OS-$ARCH..."
|
||||
echo "URL: $DOWNLOAD_URL"
|
||||
|
||||
# Download
|
||||
if command -v curl &> /dev/null; then
|
||||
curl -L -o "$FULL_TARGET" "$DOWNLOAD_URL"
|
||||
elif command -v wget &> /dev/null; then
|
||||
wget -O "$FULL_TARGET" "$DOWNLOAD_URL"
|
||||
else
|
||||
echo "❌ Neither curl nor wget found. Please install one."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f "$FULL_TARGET" ]; then
|
||||
chmod +x "$FULL_TARGET"
|
||||
echo "✅ Download successful: $FULL_TARGET"
|
||||
else
|
||||
echo "❌ Download failed."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user