#!/bin/bash # Regenerate src-tauri/gen/android/keystore.properties from the gitignored .env. # # .env is the single source of truth for local release signing. `tauri android # init` wipes/regenerates gen/android, so keystore.properties must be rewritten # from .env before every release build (this is the local mirror of what the CI # workflow does from Gitea secrets). # # Required .env vars: # ANDROID_KEY_ALIAS, ANDROID_KEYSTORE_PASSWORD, ANDROID_KEY_PASSWORD, # ANDROID_KEYSTORE_FILE (absolute path to the .jks) set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" ENV_FILE="$PROJECT_ROOT/.env" PROPS="$PROJECT_ROOT/src-tauri/gen/android/keystore.properties" if [ ! -f "$ENV_FILE" ]; then echo "❌ $ENV_FILE not found — cannot configure release signing." >&2 echo " Create it with ANDROID_KEY_ALIAS / ANDROID_KEYSTORE_PASSWORD /" >&2 echo " ANDROID_KEY_PASSWORD / ANDROID_KEYSTORE_FILE." >&2 exit 1 fi # Load .env without leaking it into the caller's environment beyond what we need. set -a # shellcheck disable=SC1090 . "$ENV_FILE" set +a : "${ANDROID_KEY_ALIAS:?ANDROID_KEY_ALIAS missing from .env}" : "${ANDROID_KEYSTORE_PASSWORD:?ANDROID_KEYSTORE_PASSWORD missing from .env}" : "${ANDROID_KEY_PASSWORD:?ANDROID_KEY_PASSWORD missing from .env}" : "${ANDROID_KEYSTORE_FILE:?ANDROID_KEYSTORE_FILE missing from .env}" if [ ! -f "$ANDROID_KEYSTORE_FILE" ]; then echo "❌ Keystore not found at ANDROID_KEYSTORE_FILE=$ANDROID_KEYSTORE_FILE" >&2 exit 1 fi mkdir -p "$(dirname "$PROPS")" umask 077 cat > "$PROPS" <