#!/usr/bin/env bash # Lädt die gebaute APK in Gitas Paket-Registry. # # Der Weg über die Registry umgeht die Typenliste für Release-Anhänge, die # `.apk` nicht enthält. Siehe RELEASE.md. # # Android/upload-package.sh 1.0.0 set -euo pipefail VERSION="${1:?Aufruf: upload-package.sh , z. B. 1.0.0}" SERVER="${GITEA_SERVER:-https://git.home.fritob.de}" OWNER="${GITEA_OWNER:-fritob}" TOKEN_FILE="${GITEA_TOKEN_FILE:-$HOME/.gitea-token}" APK="$(dirname "$0")/app/build/outputs/apk/release/app-release.apk" [ -f "$APK" ] || { echo "Keine APK gefunden. Erst bauen:" >&2 echo " source Android/env.sh && cd Android && ./gradlew :app:assembleRelease -PversionName=$VERSION" >&2 exit 1 } [ -f "$TOKEN_FILE" ] || { echo "Kein Zugangsschlüssel in $TOKEN_FILE." >&2 echo "In Gitea unter Einstellungen -> Anwendungen einen mit 'write:package' anlegen," >&2 echo "dann: printf %s 'DEIN_TOKEN' > $TOKEN_FILE && chmod 600 $TOKEN_FILE" >&2 exit 1 } NAME="CamperMonitor-$VERSION.apk" URL="$SERVER/api/packages/$OWNER/generic/camper-monitor/$VERSION/$NAME" # Der Schlüssel geht nur an curl und steht nirgends in der Ausgabe. CODE="$(curl -s -o /dev/null -w '%{http_code}' \ -H "Authorization: token $(cat "$TOKEN_FILE")" \ --upload-file "$APK" "$URL")" case "$CODE" in 201) echo "Hochgeladen: $URL" ;; 409) echo "Version $VERSION liegt dort schon. Erst löschen oder Version erhöhen." >&2; exit 1 ;; 401|403) echo "Abgelehnt (HTTP $CODE) - fehlt dem Token das Recht 'write:package'?" >&2; exit 1 ;; *) echo "Fehlgeschlagen, HTTP $CODE" >&2; exit 1 ;; esac