74 lines
1.6 KiB
Bash
74 lines
1.6 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
MODE=${1:---debug}
|
||
|
TYPE=${2:-linux}
|
||
|
MODE=${MODE/*-/}
|
||
|
|
||
|
|
||
|
build(){
|
||
|
pwd
|
||
|
$WORKDIR/entrypoint $1
|
||
|
}
|
||
|
|
||
|
build_arm64(){
|
||
|
CWD=$(pwd)
|
||
|
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
|
||
|
echo "Remember the password you enter in keytool!"
|
||
|
keytool -genkey -v -keystore $HOME/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
|
||
|
else
|
||
|
read -r -p "enter the password used to generate $HOME/upload-keystore.jks" password
|
||
|
echo -e "storePassword=${password}\nkeyPassword=${password}\nkeyAlias=upload\nstoreFile=$HOME/upload-keystore.jks" > $WORKDIR/flutter/android/key.properties
|
||
|
fi
|
||
|
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
|