33 lines
953 B
Bash
33 lines
953 B
Bash
#!/usr/bin/env bash
|
|||
|
|
# Готовит содержимое keystore (.jks) для вставки в секрет ANDROID_KEYSTORE
|
||
|
|
# Кодирует файл в base64 одной длинной строкой (без переносов) и сохраняет в файл .keystore.b64 рядом со скриптом.
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
if [ "$#" -ne 1 ]; then
|
||
|
|
echo "Usage: <path>" >&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"
|