Refactor android-builder into command scripts
This commit is contained in:
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT_DIR/lib/common.sh"
|
||||
|
||||
test -f local.properties || echo "sdk.dir=$SDK" > local.properties
|
||||
|
||||
BUILD_TYPE="$(get_build_type)"
|
||||
case "$BUILD_TYPE" in
|
||||
debug) TASK="assembleDebug" ;;
|
||||
release) TASK="assembleRelease" ;;
|
||||
*)
|
||||
echo "Unknown build type: $BUILD_TYPE"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f ./gradlew ]; then
|
||||
chmod +x ./gradlew
|
||||
./gradlew "$TASK"
|
||||
else
|
||||
gradle "$TASK"
|
||||
fi
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT_DIR/lib/common.sh"
|
||||
|
||||
echo "AndroidBuilder Doctor"
|
||||
echo
|
||||
|
||||
java -version
|
||||
echo
|
||||
gradle -v | grep Gradle
|
||||
echo
|
||||
aapt2 version
|
||||
echo
|
||||
|
||||
test -f "$SDK/platforms/$PLATFORM/android.jar" \
|
||||
&& echo "android.jar: found" \
|
||||
|| echo "android.jar: missing"
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT_DIR/lib/common.sh"
|
||||
|
||||
APK="$(get_apk_path)"
|
||||
BUILD_TYPE="$(get_build_type)"
|
||||
|
||||
if [ ! -f "$APK" ]; then
|
||||
echo "No $BUILD_TYPE APK found."
|
||||
echo
|
||||
echo "Run:"
|
||||
echo " android-builder build"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$HOME/storage" ]; then
|
||||
echo "==> Termux storage has not been configured."
|
||||
echo "==> Requesting storage permission..."
|
||||
echo
|
||||
|
||||
termux-setup-storage
|
||||
|
||||
echo
|
||||
echo "Please grant storage permission, then run:"
|
||||
echo " android-builder export"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
EXPORT_DIR="$HOME/storage/documents"
|
||||
mkdir -p "$EXPORT_DIR"
|
||||
|
||||
PROJECT_NAME="$(get_project_name)"
|
||||
DEST="$EXPORT_DIR/${PROJECT_NAME}.apk"
|
||||
|
||||
echo "==> Exporting APK..."
|
||||
|
||||
cp -f "$APK" "$DEST"
|
||||
sync
|
||||
|
||||
SIZE="$(du -h "$DEST" | cut -f1)"
|
||||
|
||||
echo
|
||||
echo "✓ Export complete!"
|
||||
echo
|
||||
echo "Project:"
|
||||
echo " $PROJECT_NAME"
|
||||
echo
|
||||
echo "Build:"
|
||||
echo " $BUILD_TYPE"
|
||||
echo
|
||||
echo "Size:"
|
||||
echo " $SIZE"
|
||||
echo
|
||||
echo "Location:"
|
||||
echo " $DEST"
|
||||
echo
|
||||
echo "Open your file manager, browse to Documents,"
|
||||
echo "then tap ${PROJECT_NAME}.apk to install or share it."
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
echo "AndroidBuilder"
|
||||
echo
|
||||
echo "Usage:"
|
||||
echo " android-builder setup"
|
||||
echo " android-builder doctor"
|
||||
echo " android-builder new MyApp"
|
||||
echo " android-builder new MyApp --template empty"
|
||||
echo " android-builder build"
|
||||
echo " android-builder export"
|
||||
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT_DIR/lib/common.sh"
|
||||
|
||||
NAME=""
|
||||
TEMPLATE="hello"
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--template|-t)
|
||||
if [ $# -lt 2 ] || [ -z "${2:-}" ] || [ "${2#-}" != "$2" ]; then
|
||||
echo "Error: --template requires a value"
|
||||
exit 1
|
||||
fi
|
||||
TEMPLATE="$2"
|
||||
shift 2
|
||||
;;
|
||||
--template=*)
|
||||
TEMPLATE="${1#*=}"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
echo "Unknown option: $1"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
if [ -z "$NAME" ]; then
|
||||
NAME="$1"
|
||||
else
|
||||
echo "Unknown argument: $1"
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$NAME" ]; then
|
||||
echo "Usage: android-builder new MyApp [--template hello|empty]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$TEMPLATE" in
|
||||
hello) create_base_project "$NAME" "Hello, World!" ;;
|
||||
empty) create_base_project "$NAME" "" ;;
|
||||
*)
|
||||
echo "Unknown template: $TEMPLATE"
|
||||
echo "Available templates: hello, empty"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Executable
+74
@@ -0,0 +1,74 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "$ROOT_DIR/lib/common.sh"
|
||||
|
||||
ensure_termux
|
||||
|
||||
echo "==> Installing packages"
|
||||
pkg update -y
|
||||
pkg install -y git curl wget unzip zip nano \
|
||||
openjdk-21 gradle aapt2 apksigner d8 dx android-tools
|
||||
|
||||
echo "==> Configuring Java"
|
||||
JAVA_BIN="$(command -v java)"
|
||||
JAVA_HOME_DETECTED="$(dirname "$(dirname "$(readlink -f "$JAVA_BIN")")")"
|
||||
export JAVA_HOME="$JAVA_HOME_DETECTED"
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
|
||||
touch "$HOME/.bashrc"
|
||||
grep -q 'ANDROID_BUILDER_JAVA_HOME' "$HOME/.bashrc" || cat >> "$HOME/.bashrc" <<EOF2
|
||||
|
||||
# Java for AndroidBuilder
|
||||
export JAVA_HOME=$JAVA_HOME_DETECTED
|
||||
export PATH=\$JAVA_HOME/bin:\$PATH
|
||||
export ANDROID_BUILDER_JAVA_HOME=\$JAVA_HOME
|
||||
EOF2
|
||||
|
||||
echo "==> Installing Android SDK cmdline-tools"
|
||||
mkdir -p "$SDK/cmdline-tools"
|
||||
cd "$SDK/cmdline-tools"
|
||||
|
||||
if [ ! -d latest ]; then
|
||||
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
|
||||
unzip -q cmdline-tools.zip
|
||||
mv cmdline-tools latest
|
||||
rm cmdline-tools.zip
|
||||
fi
|
||||
|
||||
export ANDROID_HOME="$SDK"
|
||||
export ANDROID_SDK_ROOT="$SDK"
|
||||
export PATH="$SDK/cmdline-tools/latest/bin:$PATH"
|
||||
|
||||
grep -q 'ANDROID_HOME' "$HOME/.bashrc" || cat >> "$HOME/.bashrc" <<'EOF2'
|
||||
|
||||
# AndroidBuilder SDK environment
|
||||
export ANDROID_HOME=$HOME/android-sdk
|
||||
export ANDROID_SDK_ROOT=$ANDROID_HOME
|
||||
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
|
||||
EOF2
|
||||
|
||||
echo "==> Accepting Android SDK licenses"
|
||||
mkdir -p "$SDK/licenses"
|
||||
cat > "$SDK/licenses/android-sdk-license" <<'EOF2'
|
||||
24333f8a63b6825ea9c5514f83c2829b004d1fee
|
||||
d56f5187479451eabf01fb78af6dfcb131a6481e
|
||||
8933bad161af4178b1185d1a37fbf41ea5269c55
|
||||
EOF2
|
||||
|
||||
echo "==> Installing SDK platform: $PLATFORM"
|
||||
sdkmanager "platforms;$PLATFORM"
|
||||
|
||||
echo "==> Writing Gradle config"
|
||||
mkdir -p "$HOME/.gradle"
|
||||
cat > "$HOME/.gradle/gradle.properties" <<EOF2
|
||||
org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=true
|
||||
org.gradle.caching=true
|
||||
android.aapt2FromMavenOverride=$PREFIX/bin/aapt2
|
||||
EOF2
|
||||
|
||||
echo
|
||||
echo "Setup complete."
|
||||
Reference in New Issue
Block a user