#!/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" && CI=1 npx tauri signer generate -w "$KEY_PATH" -f --ci 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"