| 
									
										
										
										
											2023-02-20 15:30:36 +00:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MODE=${1:---debug} | 
					
						
							|  |  |  | TYPE=${2:-linux} | 
					
						
							|  |  |  | MODE=${MODE/*-/} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | build(){ | 
					
						
							|  |  |  |     pwd | 
					
						
							|  |  |  |     $WORKDIR/entrypoint $1 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | build_arm64(){ | 
					
						
							|  |  |  |     CWD=$(pwd) | 
					
						
							| 
									
										
										
										
											2023-02-20 18:05:16 +00:00
										 |  |  |     cd $WORKDIR/flutter | 
					
						
							|  |  |  |     flutter pub get | 
					
						
							| 
									
										
										
										
											2023-02-20 15:30:36 +00:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2023-02-20 18:05:16 +00:00
										 |  |  |             $WORKDIR/.devcontainer/setup.sh key | 
					
						
							| 
									
										
										
										
											2023-02-20 15:30:36 +00:00
										 |  |  |         fi | 
					
						
							| 
									
										
										
										
											2023-02-20 15:39:46 +00:00
										 |  |  |         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 | 
					
						
							| 
									
										
										
										
											2023-02-20 18:05:16 +00:00
										 |  |  |         echo "Believing storeFile is created ref: $WORKDIR/flutter/android/key.properties" | 
					
						
							| 
									
										
										
										
											2023-02-20 15:30:36 +00:00
										 |  |  |     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 |