feat: initial ThinkCentre setup repo — Android, Ollama, Otto migration docs + scripts
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
# Android APK Build Wrapper — ThinkCentre 1
|
||||
# Usage: bash build.sh <app> [branch]
|
||||
# app: staysober | blockblitz | ticked
|
||||
# branch: main (default)
|
||||
#
|
||||
# Output: /var/www/downloads/<app>/<app>-latest.apk
|
||||
# Served: http://192.168.0.91:8080/<app>/
|
||||
|
||||
set -e
|
||||
|
||||
APP="${1:-}"
|
||||
BRANCH="${2:-main}"
|
||||
BUILD_DIR="/tmp/builds"
|
||||
SERVE_DIR="/var/www/downloads"
|
||||
GIT_BASE="git@192.168.0.34" # Pi git server
|
||||
|
||||
# App → repo mapping
|
||||
declare -A REPOS=(
|
||||
[staysober]="ottobringts/staysober"
|
||||
[blockblitz]="ottobringts/blockblitz"
|
||||
[ticked]="ottobringts/obsidian-tasks-app"
|
||||
)
|
||||
|
||||
if [[ -z "$APP" || -z "${REPOS[$APP]}" ]]; then
|
||||
echo "Usage: $0 <app> [branch]"
|
||||
echo "Apps: ${!REPOS[@]}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO="${REPOS[$APP]}"
|
||||
WORK_DIR="$BUILD_DIR/$APP"
|
||||
APK_OUT="$SERVE_DIR/$APP"
|
||||
|
||||
echo "=== Building $APP ($BRANCH) ==="
|
||||
echo "Repo: $REPO"
|
||||
|
||||
# Clone / pull
|
||||
if [ -d "$WORK_DIR/.git" ]; then
|
||||
echo "Pulling latest..."
|
||||
cd "$WORK_DIR"
|
||||
git fetch origin
|
||||
git checkout "$BRANCH"
|
||||
git pull origin "$BRANCH"
|
||||
else
|
||||
echo "Cloning..."
|
||||
mkdir -p "$BUILD_DIR"
|
||||
git clone --branch "$BRANCH" "https://github.com/$REPO.git" "$WORK_DIR"
|
||||
cd "$WORK_DIR"
|
||||
fi
|
||||
|
||||
# Set ANDROID_HOME
|
||||
export ANDROID_HOME="$HOME/android-sdk"
|
||||
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0"
|
||||
|
||||
# Expo prebuild if needed
|
||||
if [ -f "app.json" ] && grep -q '"expo"' app.json; then
|
||||
echo "Expo project detected — running prebuild..."
|
||||
npx expo prebuild --platform android --no-install 2>&1 | tail -5
|
||||
fi
|
||||
|
||||
# Gradle build
|
||||
echo "Running Gradle assembleRelease..."
|
||||
cd android 2>/dev/null || cd .
|
||||
chmod +x gradlew
|
||||
./gradlew assembleRelease --no-daemon --quiet 2>&1 | tail -20
|
||||
|
||||
# Find and copy APK
|
||||
APK=$(find . -name "*.apk" -path "*/release/*" | head -1)
|
||||
if [ -z "$APK" ]; then
|
||||
echo "ERROR: No APK found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$APK_OUT"
|
||||
cp "$APK" "$APK_OUT/$APP-latest.apk"
|
||||
|
||||
echo ""
|
||||
echo "=== Build complete ==="
|
||||
echo "APK: $APK_OUT/$APP-latest.apk"
|
||||
echo "URL: http://192.168.0.91:8080/$APP/$APP-latest.apk"
|
||||
ls -lh "$APK_OUT/$APP-latest.apk"
|
||||
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# Android SDK Setup for ThinkCentre 1
|
||||
# Run as secondclaw — installs Java 17 + Android SDK + NDK
|
||||
# Usage: bash setup.sh
|
||||
|
||||
set -e
|
||||
|
||||
ANDROID_HOME="$HOME/android-sdk"
|
||||
SDK_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip"
|
||||
|
||||
echo "=== Android Build Environment Setup ==="
|
||||
|
||||
# Java 17
|
||||
echo "[1/5] Java 17..."
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y -qq openjdk-17-jdk-headless wget unzip curl
|
||||
java --version
|
||||
|
||||
# Android CLI Tools
|
||||
echo "[2/5] Android Command Line Tools..."
|
||||
mkdir -p "$ANDROID_HOME/cmdline-tools"
|
||||
cd /tmp
|
||||
wget -q "$SDK_TOOLS_URL" -O cmdline-tools.zip
|
||||
unzip -q cmdline-tools.zip -d "$ANDROID_HOME/cmdline-tools"
|
||||
mv "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest"
|
||||
rm cmdline-tools.zip
|
||||
|
||||
# Environment
|
||||
echo "[3/5] Environment variables..."
|
||||
if ! grep -q ANDROID_HOME ~/.bashrc; then
|
||||
cat >> ~/.bashrc << EOF
|
||||
|
||||
# Android SDK
|
||||
export ANDROID_HOME=\$HOME/android-sdk
|
||||
export PATH=\$PATH:\$ANDROID_HOME/cmdline-tools/latest/bin:\$ANDROID_HOME/platform-tools:\$ANDROID_HOME/build-tools/34.0.0
|
||||
EOF
|
||||
fi
|
||||
export ANDROID_HOME
|
||||
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools"
|
||||
|
||||
# SDK Components
|
||||
echo "[4/5] SDK components (platform-tools, android-34, build-tools, NDK r26b)..."
|
||||
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" \
|
||||
--sdk_root="$ANDROID_HOME" \
|
||||
"platform-tools" \
|
||||
"platforms;android-34" \
|
||||
"build-tools;34.0.0" \
|
||||
"ndk;26.1.10909125"
|
||||
|
||||
# Accept licenses
|
||||
echo "[5/5] Accepting licenses..."
|
||||
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$ANDROID_HOME" --licenses > /dev/null 2>&1 || true
|
||||
|
||||
echo ""
|
||||
echo "=== Done ==="
|
||||
java --version
|
||||
"$ANDROID_HOME/platform-tools/adb" version
|
||||
echo "ANDROID_HOME=$ANDROID_HOME"
|
||||
echo ""
|
||||
echo "Reload shell: source ~/.bashrc"
|
||||
Reference in New Issue
Block a user