build-android-app.sh: color, command

This commit is contained in:
Alexander Mahr 2024-12-28 09:39:22 +01:00
parent 911170325e
commit e6df08287e

View file

@ -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
}
}