Both siblings' pipelines are near-identical; the real difference between them is which forge is canonical. This is Agendula's spine — it pushes the tag to Codeberg itself and flags pre-1.0 releases as pre-releases — with Calendula's `play` job grafted on unchanged. Taking Agendula's spine means there is no Gitea-canonical phase to migrate out of later, which is the one thing Agendula had to unwind. The Codeberg publish step stays NOT continue-on-error, inherited that way deliberately: in Agendula it reported green through five consecutive releases while never once publishing, which is how a crash-fix release reached F-Droid but not the users who needed it. Comments that recount that history now name Agendula, so an inherited scar isn't misread as ours. The `play` job runs last and isolated, and skips cleanly until PLAY_SERVICE_ACCOUNT_JSON exists — so it stays dormant through the whole pre-1.0 run, which is the correct behaviour anyway. Templates, the contributing guide and verify-release.sh are rewritten for this app's domain rather than renamed: the architectural rule here is that Room types stay in the data layer, and the on-device release check is an alarm that survives a lock screen and a reboot, not a task list that loads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L94fydiJC37LtxVusNQBDy
49 lines
2.1 KiB
Bash
Executable File
49 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Single source of truth: fastlane/metadata/android/<locale>/ feeds BOTH the
|
|
# official F-Droid repo (harvested from source automatically) and the
|
|
# self-hosted repo. This script transforms the fastlane layout into the F-Droid
|
|
# "localized" layout that the self-hosted `fdroid update` consumes, so we don't
|
|
# maintain two copies.
|
|
#
|
|
# usage: fastlane_to_fdroid_localized.sh <fastlane_android_dir> <out_localized_dir>
|
|
# e.g. scripts/fastlane_to_fdroid_localized.sh \
|
|
# fastlane/metadata/android \
|
|
# fdroid/metadata/de.jeanlucmakiola.clockula
|
|
#
|
|
# Mapping (fastlane -> F-Droid repo localized):
|
|
# short_description.txt -> summary.txt
|
|
# full_description.txt -> description.txt
|
|
# title.txt -> name.txt
|
|
# images/icon.png -> icon.png
|
|
# images/phoneScreenshots/* -> phoneScreenshots/*
|
|
# changelogs/<versionCode>.txt -> changelogs/<versionCode>.txt
|
|
# (changelogs are seeded into the fastlane tree by
|
|
# scripts/sync_changelog_to_fastlane.sh.)
|
|
set -euo pipefail
|
|
|
|
SRC="${1:?need fastlane android dir, e.g. fastlane/metadata/android}"
|
|
OUT="${2:?need output localized dir, e.g. fdroid/metadata/<appid>}"
|
|
|
|
shopt -s nullglob
|
|
for locdir in "$SRC"/*/; do
|
|
loc="$(basename "$locdir")"
|
|
dst="$OUT/$loc"
|
|
mkdir -p "$dst"
|
|
[ -f "$locdir/short_description.txt" ] && cp "$locdir/short_description.txt" "$dst/summary.txt"
|
|
[ -f "$locdir/full_description.txt" ] && cp "$locdir/full_description.txt" "$dst/description.txt"
|
|
[ -f "$locdir/title.txt" ] && cp "$locdir/title.txt" "$dst/name.txt"
|
|
[ -f "$locdir/images/icon.png" ] && cp "$locdir/images/icon.png" "$dst/icon.png"
|
|
if [ -d "$locdir/images/phoneScreenshots" ]; then
|
|
mkdir -p "$dst/phoneScreenshots"
|
|
cp "$locdir"images/phoneScreenshots/* "$dst/phoneScreenshots/"
|
|
fi
|
|
# Per-version changelogs live in the same fastlane tree (see
|
|
# scripts/sync_changelog_to_fastlane.sh) and map straight across.
|
|
if [ -d "$locdir/changelogs" ]; then
|
|
mkdir -p "$dst/changelogs"
|
|
cp "$locdir"changelogs/* "$dst/changelogs/"
|
|
fi
|
|
done
|
|
|
|
echo "Built F-Droid localized metadata in '$OUT' from '$SRC'"
|