50 lines
1.6 KiB
Bash
Executable File
50 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Tauri updater minisign 키쌍 생성 — 1회 (Jenkins secret 또는 서버 로컬)
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
KEY_PATH="${TAURI_SIGNER_KEY:-$HOME/.tauri/goldenchart.key}"
|
|
PUB_PATH="${TAURI_SIGNER_PUB:-$ROOT/desktop/updater.pub}"
|
|
DESKTOP_DIR="$ROOT/desktop"
|
|
|
|
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
|
# shellcheck disable=SC1091
|
|
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
|
|
|
mkdir -p "$(dirname "$KEY_PATH")"
|
|
|
|
if [[ -f "$KEY_PATH" ]]; then
|
|
echo "기존 private key: $KEY_PATH"
|
|
else
|
|
echo "새 updater 키 생성: $KEY_PATH"
|
|
GEN_OUT="$(cd "$DESKTOP_DIR" && npx tauri signer generate -w "$KEY_PATH" -f 2>&1)" || true
|
|
echo "$GEN_OUT"
|
|
if [[ ! -f "$KEY_PATH" ]]; then
|
|
echo "키 생성 실패. Rust/tauri-cli 확인 후 재시도."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [[ ! -f "$PUB_PATH" ]]; then
|
|
echo "Public key 추출 시도..."
|
|
if echo "$GEN_OUT" | grep -qi 'public key'; then
|
|
echo "$GEN_OUT" | grep -i 'public key' | tail -1 | sed -E 's/^[^:]*:[[:space:]]*//' > "$PUB_PATH"
|
|
fi
|
|
if [[ ! -s "$PUB_PATH" ]] && [[ -f "${KEY_PATH}.pub" ]]; then
|
|
cp "${KEY_PATH}.pub" "$PUB_PATH"
|
|
fi
|
|
if [[ ! -s "$PUB_PATH" ]]; then
|
|
echo "desktop/updater.pub 를 수동 생성하세요 (tauri signer generate 출력의 public key)."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
chmod +x "$ROOT/scripts/patch-tauri-updater-pubkey.sh"
|
|
"$ROOT/scripts/patch-tauri-updater-pubkey.sh"
|
|
|
|
echo ""
|
|
echo "=== updater 키 설정 완료 ==="
|
|
echo " Private: $KEY_PATH (git/Jenkins secret — 커밋 금지)"
|
|
echo " Public: $PUB_PATH"
|
|
echo "Jenkins: TAURI_SIGNER_KEY=$KEY_PATH"
|