#!/usr/bin/env bash # Готовит содержимое keystore (.jks) для вставки в секрет ANDROID_KEYSTORE # Кодирует файл в base64 одной длинной строкой (без переносов) и сохраняет в файл .keystore.b64 рядом со скриптом. set -euo pipefail if [ "$#" -ne 1 ]; then echo "Usage: " >&2 exit 1 fi KEYSTORE="$1" if [ ! -f "$KEYSTORE" ]; then echo "File not found: $KEYSTORE" >&2 exit 1 fi # base64 -w0: без переносов строк. (на macOS base64 не имеет -w) if base64 --help 2>/dev/null | grep -q '\-w'; then ENCODED=$(base64 -w0 "$KEYSTORE") else ENCODED=$(base64 <"$KEYSTORE" | tr -d '\n') fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" OUTFILE="$SCRIPT_DIR/.keystore.b64" printf '%s\n' "$ENCODED" >"$OUTFILE" echo "Keystore: $KEYSTORE" echo "Output: $OUTFILE" echo "Size: ${#ENCODED} chars"