更新 opencode/start.sh
This commit is contained in:
+210
-27
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user