mirror of
https://github.com/caydey/ffshare.git
synced 2026-03-13 10:12:23 +08:00
77 lines
2.4 KiB
Bash
Executable File
77 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
GRADLE_LOCATION=./app/build.gradle
|
|
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
|
|
|
APP_NAME="FFShare"
|
|
APP_VERSION=$(grep -Po '(?<=versionName \").*(?=\")' "$GRADLE_LOCATION")
|
|
APP_VERSION_CODE=$(grep -Po '(?<=versionCode ).*' "$GRADLE_LOCATION")
|
|
|
|
# no pre-release version argument
|
|
if [ -z "$1" ]; then
|
|
./gradlew assembleRelease
|
|
else
|
|
PRE_VERSION_NAME="$1"
|
|
# create backup of gradle to revert back to after bumping version and assembling release
|
|
cp "$GRADLE_LOCATION" "$GRADLE_LOCATION.original"
|
|
|
|
# change app version to pre version and bumb version code
|
|
APP_VERSION="$PRE_VERSION_NAME"
|
|
APP_VERSION_CODE="$((APP_VERSION_CODE + 1))"
|
|
|
|
sed -i -e "s/versionName \".*\"/versionName \"${APP_VERSION}\"/g" "$GRADLE_LOCATION"
|
|
sed -i -e "s/versionCode .*/versionCode ${APP_VERSION_CODE}/g" "$GRADLE_LOCATION"
|
|
|
|
./gradlew assembleRelease
|
|
|
|
# revert to original gradle version after build finished
|
|
mv "$GRADLE_LOCATION.original" "$GRADLE_LOCATION"
|
|
fi
|
|
|
|
|
|
OUTPUT_FOLDER="./github_releases/$APP_VERSION"
|
|
|
|
|
|
mkdir -p "$OUTPUT_FOLDER" 2>/dev/null
|
|
rm -rf ./"${OUTPUT_FOLDER:?}"/* # clean if rebuild
|
|
|
|
APK_ROOT=./app/build/outputs/apk
|
|
|
|
for VARIANT_DIR in "$APK_ROOT"/*; do
|
|
variant=$(basename "$VARIANT_DIR")
|
|
for APK_FILE in "$VARIANT_DIR"/release/*.apk; do
|
|
abi=$(basename "$APK_FILE" | cut -d'-' -f3)
|
|
abi_bit="_$abi"
|
|
[[ "$abi" == 'universal' ]] && abi_bit=""
|
|
newApk="${APP_NAME}_${APP_VERSION}_${variant}${abi_bit}.apk"
|
|
cp "$APK_FILE" "$OUTPUT_FOLDER/$newApk"
|
|
done
|
|
done
|
|
|
|
changelog=$(cat "./fastlane/metadata/android/en-US/changelogs/$APP_VERSION_CODE.txt")
|
|
|
|
# title
|
|
echo "$APP_NAME $APP_VERSION" > "$OUTPUT_FOLDER/release"
|
|
|
|
# changelog
|
|
echo "=== Changelog ===" >> "$OUTPUT_FOLDER/release"
|
|
echo "$changelog" >> "$OUTPUT_FOLDER/release"
|
|
|
|
# apk info
|
|
echo """
|
|
=== APK Info ===
|
|
arm64 & armeabi - your phones CPU architecture, the only benefit of downloading these over the default one is a download size reduction
|
|
full - FFShare will compress videos, images and audio files (mp3/ogg/etc...)
|
|
video - FFShare will only compress videos and images
|
|
""" >> "$OUTPUT_FOLDER/release"
|
|
|
|
# sha256
|
|
echo "=== SHA256 ===" >> "$OUTPUT_FOLDER/release"
|
|
for apk in "$OUTPUT_FOLDER"/*.apk; do
|
|
sha=$(sha256sum "$apk" | awk '{ print $1 }')
|
|
size=$(du -hk "$apk" | awk '{ printf "%.1fM", $1/1024 }')
|
|
base=$(basename "$apk")
|
|
echo "$sha $base ($size)" >> "$OUTPUT_FOLDER/release"
|
|
done
|
|
|