#!/data/data/com.termux/files/usr/bin/bash set -e ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" AB_HOME="${ANDROID_BUILDER_HOME:-$HOME/android-builder}" SDK="$HOME/android-sdk" PLATFORM="${ANDROID_BUILDER_PLATFORM:-android-33}" ensure_termux() { if [ -z "${PREFIX:-}" ] || [ ! -d "/data/data/com.termux/files/usr" ]; then echo "Error: this command must be run inside Termux." exit 1 fi } get_project_name() { if [ -f settings.gradle ]; then DETECTED_NAME="$(grep -E '^rootProject.name[[:space:]]*=' settings.gradle \ | sed -E 's/.*=[[:space:]]*["'\'']?([^"'\'' ]+)["'\'']?.*/\1/' \ | head -n 1)" [ -n "$DETECTED_NAME" ] && echo "$DETECTED_NAME" && return fi basename "$PWD" } get_build_type() { echo "${ANDROID_BUILDER_BUILD_TYPE:-debug}" } get_apk_path() { case "$(get_build_type)" in debug) echo "app/build/outputs/apk/debug/app-debug.apk" ;; release) echo "app/build/outputs/apk/release/app-release.apk" ;; *) return 1 ;; esac } create_base_project() { NAME="$1" MESSAGE="$2" PACKAGE="com.example.$(echo "$NAME" | tr '[:upper:]' '[:lower:]' | tr -cd 'a-z0-9')" PACKAGE_PATH="$(echo "$PACKAGE" | tr '.' '/')" mkdir -p "$NAME/app/src/main/java/$PACKAGE_PATH" mkdir -p "$NAME/app/src/main/res/values" cat > "$NAME/settings.gradle" < "$NAME/build.gradle" <<'EOF2' // Root build file intentionally minimal. EOF2 cat > "$NAME/gradle.properties" < "$NAME/local.properties" < "$NAME/app/build.gradle" < "$NAME/app/src/main/AndroidManifest.xml" <<'EOF2' EOF2 cat > "$NAME/app/src/main/res/values/strings.xml" < $NAME EOF2 cat > "$NAME/app/src/main/res/values/styles.xml" <<'EOF2' EOF2 cat > "$NAME/app/src/main/java/$PACKAGE_PATH/MainActivity.java" < "$NAME/gradlew" <<'EOF2' #!/data/data/com.termux/files/usr/bin/bash set -e exec gradle "$@" EOF2 chmod +x "$NAME/gradlew" echo "Created project: $NAME" echo echo "Next:" echo " cd $NAME" echo " android-builder build" echo " android-builder export" }