spiegel-keyman/android/KMAPro/build-play-store-notes.inc.sh
Eberhard Beilharz a3b63008ef
maint(android): use new variable name KEYMAN_TIER
PR #13854 missed (at least) one place when renaming the variables from
`TIER` to `KEYMAN_TIER`. This change fixes the release builds for
Android.

Follow-up-of: #13854
Fixes: #13896
Test-bot: skip
2025-05-13 08:56:02 +02:00

54 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
# Assumption: parent script that sources this already has START STANDARD BUILD SCRIPT INCLUDE
################################ Main script ################################
function generateReleaseNotes() {
pushd "$KEYMAN_ROOT/android/KMAPro/"
#
# Copy release notes for Gradle Play Publisher to upload
# Reference: https://github.com/Triple-T/gradle-play-publisher#uploading-release-notes
#
local PLAY_RELEASE_NOTES="$KEYMAN_ROOT/android/KMAPro/kMAPro/src/main/play/release-notes/en-US/${KEYMAN_TIER}.txt"
if [ $KEYMAN_TIER = "stable" ]; then
PLAY_RELEASE_NOTES="$KEYMAN_ROOT/android/KMAPro/kMAPro/src/main/play/release-notes/en-US/default.txt"
fi
builder_heading "Generating Play Store release notes to $PLAY_RELEASE_NOTES"
# write to file
echo "" > "$PLAY_RELEASE_NOTES"
# Copy whatsnew.md to release notes 1 line at a time,
# filtering for lines that start with "*".
# Pad release notes if whatsnew.md doesn't have any line items
# Play Store release notes have a limit of 500 characters
local DEFAULT_RELEASE_NOTE="* Additional bug fixes and improvements"
local FILTERED_LINES=$( grep '^\s*\*.*$' "$KEYMAN_ROOT/android/docs/help/about/whatsnew.md" || [[ $? == 1 ]] ) # Continue if grep has no matches
if [ -z "$FILTERED_LINES" ]; then
FILTERED_LINES="$DEFAULT_RELEASE_NOTE"
builder_warn "Warning: whatsnew.md empty so using default release note: '$FILTERED_LINES'"
fi
# Change IFS to new line
local old_IFS="${IFS}"
IFS=$'\n'
for line in $FILTERED_LINES
do
local CHARS_IN_RELEASE_NOTES=$( wc -m < "$PLAY_RELEASE_NOTES" )
local CHARS_IN_CURRENT_LINE=$( wc -m <<< $line )
if (( CHARS_IN_RELEASE_NOTES + CHARS_IN_CURRENT_LINE + 1 < 450 )); then
# Copy line to Play Store release notes
echo "$line" >> "$PLAY_RELEASE_NOTES"
else
# 450 chars reached
builder_warn "Warning: Play Store release notes approaching 500 character limit"
echo "$DEFAULT_RELEASE_NOTE" >> "$PLAY_RELEASE_NOTES"
break
fi
done
# Restore IFS
IFS="${old_IFS}"
popd
}