#!/bin/bash # This script will initialize the gradle build process for all subprojects in src dicetory # Check for a build mode argument echo "Find Java and Android SDK paths" echo "JAVA_HOME before: $JAVA_HOME" echo "Finding javac path... $(which javac)" export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)))) export ANDROID_HOME='/opt/android-sdk' export PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin" export PATH="${PATH}:${ANDROID_HOME}/platform-tools" if [ "$1" == "clean" ]; then BUILD_MODE="clean assembleRelease" BUILD_LOGGING="" else BUILD_MODE="assembleDebug" BUILD_LOGGING="--warning-mode all" fi # check if user is root and change user to builder if [ "$EUID" -eq 0 ]; then echo "Please do not run this script as root." BUILD_USER="builder" else BUILD_USER="$USER" fi source /home/$BUILD_USER/.bashrc yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses # Find all src subdirectories containing a build.gradle file for dir in src/*/; do if [ -f "$dir/build.gradle" ]; then echo "Building project in $dir" gradle --stop (cd "$dir" && gradle clean $BUILD_MODE $BUILD_LOGGING) else echo "No build.gradle found in $dir, skipping." fi done