From a19447b8a0371ad5d7a45f91b076fda15300e41b Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 25 Sep 2026 11:55:27 -0700 Subject: [PATCH] compile, overhaul the script to have the name and version in the filenames as well as reuse more code. --- compile.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 13 deletions(-) diff --git a/compile.sh b/compile.sh index 9d6a644..e041847 100755 --- a/compile.sh +++ b/compile.sh @@ -1,23 +1,70 @@ #!/usr/bin/env bash # 20260913 - Hyperling -# Build the project and add them to a releases folder. +# Build the project and add the output to a releases folder. -# TODO -# create dir name release-${version} to store these in, +## Setup ## -echo -e "\nCleaning..." -flutter clean +DIR="$(cd "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" -echo -e "\nBuilding Linux..." +## Functions ## + +function log { + echo -e "\n $@ \n" +} + +function clean_flutter { + log "Cleaning..." + flutter clean +} + +## Variables ## + +app_details="$DIR/pubspec.yaml" + +name="" +for i in `grep name $app_details`; do + name="$i" +done +name="${name// /_}" + +version="" +for i in `grep version $app_details`; do + version="$i" +done +version="v${version// /_}" + +if [[ -z $name || -z $version ]]; then + echo "ERROR: Could not retrieve name or version. name='$name' version='$version'" + exit 1 +fi + +RELEASE="release/$name-$version" +echo "Running for '$RELEASE'." + +## Main ## + +clean_flutter + +log "Building Linux Bundle..." flutter build linux -zip -r release/linux-bundle.zip build/linux/x64/release/bundle/* -echo -e "\nCleaning..." -flutter clean +log "Saving Linux Bundle..." +filename=$RELEASE.linux-bundle.zip +if [[ -e $filename ]]; then + rm -v $filename +fi +zip -r $filename build/linux/x64/release/bundle/* +ls -sh $filename -echo -e "\nBuilding APK..." +clean_flutter + +log "Building APK..." flutter build apk -cp -v build/app/outputs/flutter-apk/app-release.apk release/ -echo -e "\nCleaning..." -flutter clean +log "Saving APK..." +filename=$RELEASE.apk +if [[ -e $filename ]]; then + rm -v $filename +fi +cp -v build/app/outputs/flutter-apk/app-release.apk $filename +ls -sh $filename