Files
juc500/dist-offline/juc500-offline-update-20260720-123250/scripts/make_windows_bundle.sh
T
2026-07-21 21:11:19 +09:00

54 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Mac/Linux → Windows 배포용 zip 생성 (vendor 포함, .venv 제외)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
STAMP="$(date +%Y%m%d)"
OUT="${1:-$ROOT/../juc500-windows-${STAMP}.zip}"
if [[ ! -f "$ROOT/vendor/libusb-1.0.dll" ]]; then
echo "[!] vendor/libusb-1.0.dll 없음" >&2
exit 1
fi
if [[ ! -f "$ROOT/vendor/wheels/pyusb-1.2.1-py3-none-any.whl" ]]; then
echo "[!] vendor/wheels 없음" >&2
exit 1
fi
echo "=== Windows 배포 zip 생성 ==="
echo "출력: $OUT"
# zip: 프로젝트 루트 내용을 아카이브 루트에 넣음 (juc500/ 접두사 없음)
rm -f "$OUT"
(
cd "$ROOT"
zip -r -q "$OUT" . \
-x ".venv/*" \
-x ".venv-build/*" \
-x ".venv-build-win/*" \
-x ".venv-offline-test/*" \
-x ".git/*" \
-x "*/__pycache__/*" \
-x "*.py[cod]" \
-x "*.egg-info/*" \
-x "dist/*" \
-x "dist-windows/*" \
-x "build/*" \
-x "juc500-app/node_modules/*" \
-x "juc500-app/src-tauri/target/*" \
-x ".DS_Store" \
-x "*.zip" \
-x "*.tar.gz" \
-x ".juc500/*" \
-x "hub.log"
)
bytes="$(wc -c <"$OUT" | tr -d ' ')"
echo "완료: $OUT ($bytes bytes)"
echo ""
echo "Windows에서:"
echo " 1) zip 압축 해제 (예: C:\\dev\\juc500)"
echo " 2) Git Bash: cd /c/dev/juc500 && ./start_win.sh"
echo " (첫 실행 시 vendor 로 .venv 자동 생성)"