#!/bin/bash set -e MODE=${1:---debug} TYPE=${2:-linux} MODE=${MODE/*-/} build(){ pwd $WORKDIR/entrypoint $1 } build_arm64(){ CWD=$(pwd) cd $WORKDIR/flutter flutter pub get cd $WORKDIR $WORKDIR/flutter/ndk_arm64.sh cp $WORKDIR/target/aarch64-linux-android/release/liblibrustdesk.so $WORKDIR/flutter/android/app/src/main/jniLibs/arm64-v8a/librustdesk.so cd $CWD } build_apk(){ cd $WORKDIR/flutter MODE=$1 $WORKDIR/flutter/build_android.sh cd $WORKDIR } key_gen(){ if [ ! -f $WORKDIR/flutter/android/key.properties ] then if [ ! -f $HOME/upload-keystore.jks ] then $WORKDIR/.devcontainer/setup.sh key fi read -r -p "enter the password used to generate $HOME/upload-keystore.jks\n" password echo -e "storePassword=${password}\nkeyPassword=${password}\nkeyAlias=upload\nstoreFile=$HOME/upload-keystore.jks" > $WORKDIR/flutter/android/key.properties else echo "Believing storeFile is created ref: $WORKDIR/flutter/android/key.properties" fi } android_build(){ if [ ! -d $WORKDIR/flutter/android/app/src/main/jniLibs/arm64-v8a ] then $WORKDIR/.devcontainer/setup.sh android fi build_arm64 case $1 in debug) build_apk debug ;; release) key_gen build_apk release ;; esac } case "$MODE:$TYPE" in "debug:linux") build ;; "release:linux") build --release ;; "debug:android") android_build debug ;; "release:android") android_build release ;; esac