diff --git a/build-android-app.sh b/build-android-app.sh index 26ae47d..865d2d5 100755 --- a/build-android-app.sh +++ b/build-android-app.sh @@ -1,11 +1,11 @@ #!/bin/sh -set -ex +set -e CONTAINERRUNTIMES='docker podman nerdctl' for CONTAINERRUNTIME in $CONTAINERRUNTIMES / do - type $CONTAINERRUNTIME 2>/dev/null && break + type $CONTAINERRUNTIME >/dev/null 2>/dev/null && break test "$CONTAINERRUNTIME" = / && { echo "install a container runtime (e.g ${CONTAINERRUNTIMES//\ /\/})" >&2 exit 2 @@ -15,7 +15,7 @@ done HASHES='md5sum cksum sha1sum base64 uuencode' for HASH in $HASHES / do - type $HASH 2>/dev/null && break + type $HASH >/dev/null 2>/dev/null && break test "$HASH" = / && { echo "install checksum (e.g ${HASHES//\ /\/})" >&2 exit 3 @@ -26,32 +26,45 @@ DockerfileContent(){ cat << 'DOCKERFILEEOF' FROM debian:latest RUN apt-get update -y && apt-get install -y make openjdk-17-jdk-headless unzip zip wget curl whiptail -ENTRYPOINT ["/bin/bash","-c","make"] ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64/" ENV ANDROID_SDK_ROOT="/app/android-sdk" ENV BUILD_TOOLS_LATEST="$ANDROID_SDK_ROOT/cmdline-tools/latest" ENV PATH="$BUILD_TOOLS_LATEST/bin:$PATH" ENV LIBRARY_PATH="$LIBRARY_PATH:$BUILD_TOOLS_LATEST/lib" +CMD ["make","--trace"] DOCKERFILEEOF } diff Dockerfile <(DockerfileContent) 2>/dev/null > /dev/null || { - read -p 'reset/start Dockerfile[Y/n]' YES - test "$YES" = "n" && { echo "aborting..." >&2; exit 1; } + test -f Dockerfile && { + read -p 'reset/start Dockerfile[Y/n]' YES + test "$YES" = "n" && { echo "aborting..." >&2; exit 1; } + } DockerfileContent > Dockerfile } -IMAGE=android-app:"$($HASH Dockerfile | tr -cd '[a-zA-Z0-9]' | head -c 12)" +IMAGE=build-android-app:"$($HASH Dockerfile | tr -cd '[a-zA-Z0-9]' | head -c 12)" docker image inspect "$IMAGE" >/dev/null 2>/dev/null || { $CONTAINERRUNTIME build --tag "$IMAGE" . } +#(optional) tag the latest image build +docker tag $IMAGE build-android-app:latest -$CONTAINERRUNTIME run --name build-android-app-$(date +%F--%H-%M-%S) \ +time $CONTAINERRUNTIME run --name build-android-app-$(date +%F--%H-%M-%S) \ --workdir=/app \ --hostname build-android-app \ --volume ./app:/app \ -it \ --rm \ - "$IMAGE" + "$IMAGE" "$@" | { + test "$#" -eq 0 && { + # colur output in case this script was called without] + # command line arguments + sed 's/^Makefile:/\n\n'$'\033[0;32m''Makefile:'$'\033[0m''/g' + } || { + # no modification else + cat + } + }