更新 opencode/start.sh

This commit is contained in:
wol
2026-07-03 18:00:42 +08:00
parent 088eddd8a1
commit a937543bbb
+210 -27
View File
@@ -1,10 +1,53 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
set -Eeuo pipefail
mkdir -p /workspace
###############################################################################
# Config
###############################################################################
mkdir -p /opt/android-sdk
ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
ANDROID_SDK_ROOT="${ANDROID_HOME}"
SDK_VERSION="13114758"
CMDLINE_URL="https://dl.google.com/android/repository/commandlinetools-linux-${SDK_VERSION}_latest.zip"
WORKSPACE="/workspace"
###############################################################################
# PATH
###############################################################################
export JAVA_HOME="${JAVA_HOME:-/usr/lib/jvm/java-21-openjdk-amd64}"
export PATH="$JAVA_HOME/bin:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
###############################################################################
# Banner
###############################################################################
echo "=========================================================="
echo " OpenCode Development Environment"
echo "=========================================================="
echo ""
###############################################################################
# mkdir
###############################################################################
mkdir -p "${WORKSPACE}"
mkdir -p "${ANDROID_HOME}"
mkdir -p "${ANDROID_HOME}/cmdline-tools"
mkdir -p ~/.android
@@ -12,50 +55,190 @@ mkdir -p ~/.gradle
mkdir -p ~/.m2
#########################################################
mkdir -p ~/.npm
# Android SDK
mkdir -p ~/.cache/pip
#########################################################
mkdir -p ~/.cargo
if [ ! -f /opt/android-sdk/platform-tools/adb ]; then
mkdir -p ~/go
echo "Installing Android SDK..."
###############################################################################
# download
###############################################################################
mkdir -p /opt/android-sdk/cmdline-tools
download_sdk() {
echo ""
echo "Downloading Android CommandLine Tools..."
cd /tmp
wget -q https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip
rm -f commandlinetools.zip
unzip -q commandlinetools-linux-13114758_latest.zip
for i in 1 2 3
do
mv cmdline-tools /opt/android-sdk/cmdline-tools/latest
if wget \
--tries=3 \
--timeout=30 \
-O commandlinetools.zip \
"${CMDLINE_URL}"
then
break
fi
yes | sdkmanager --licenses
echo ""
sdkmanager \
"platform-tools" \
"platforms;android-36" \
"build-tools;36.0.0"
echo "Retry ${i}..."
sleep 5
done
unzip -oq commandlinetools.zip
rm -f commandlinetools.zip
rm -rf "${ANDROID_HOME}/cmdline-tools/latest"
mv cmdline-tools "${ANDROID_HOME}/cmdline-tools/latest"
}
###############################################################################
# sdk
###############################################################################
install_sdk() {
echo ""
echo "Installing Android SDK..."
yes | sdkmanager --licenses >/dev/null
sdkmanager --sdk_root="${ANDROID_HOME}" \
"platform-tools" \
"platforms;android-36" \
"build-tools;36.0.0"
}
###############################################################################
# first start
###############################################################################
if [ ! -f "${ANDROID_HOME}/platform-tools/adb" ]
then
echo ""
echo "Android SDK Not Found"
download_sdk
install_sdk
else
echo ""
echo "Android SDK Ready"
fi
echo "Android SDK Ready"
###############################################################################
# Versions
###############################################################################
echo "Java:"
java -version
echo ""
echo "Python:"
python3 --version
echo "================ Versions ================"
echo "Node:"
node -v
echo ""
echo "Java"
java -version || true
echo ""
echo "Python"
python3 --version || true
echo ""
echo "Node"
node -v || true
echo ""
echo "npm"
npm -v || true
echo ""
echo "Gradle"
echo "Gradle:"
gradle -v || true
echo "OpenCode Starting..."
echo ""
echo "Maven"
mvn -v || true
echo ""
echo "Go"
go version || true
echo ""
echo "Rust"
rustc --version || true
echo ""
echo "=========================================="
###############################################################################
# Check OpenCode
###############################################################################
if ! command -v opencode >/dev/null
then
echo ""
echo "ERROR: OpenCode Not Installed."
exit 1
fi
###############################################################################
# Workspace
###############################################################################
cd "${WORKSPACE}"
###############################################################################
# Start
###############################################################################
echo ""
echo "Starting OpenCode..."
echo ""
exec opencode serve \
--host 0.0.0.0 \