Files
javis_bot/scripts/build_installer.sh
javis-bot c4abf63f38
Some checks failed
Release / semantic-release (push) Successful in 59s
tests / Unit tests (Linux, Python 3.11) (push) Successful in 13m45s
Release / build-linux (push) Failing after 7m47s
Release / build-windows (push) Has been cancelled
Release / build-macos (arm64, macos-latest) (push) Has been cancelled
Release / build-macos (x64, macos-15-intel) (push) Has been cancelled
Release / release-main (push) Has been cancelled
Release / release-develop (push) Has been cancelled
Add Discord-native hybrid front-end for Jarvis (bot + bridge)
Transform isair/jarvis into a Discord-controlled voice assistant running on
the Ubuntu VNC desktop, keeping the mature ~39k-line Python brain intact.

- bot/ (Node + bun, discord.js): /자비스 slash commands (ephemeral),
  voice channel join + voice receive/playback, pluggable VNC screen broadcast
  (selfbot live / noVNC / screenshot)
- bridge/ (Python, Flask): wraps jarvis STT + run_reply_engine + Piper TTS
  behind a thin localhost HTTP API
- .env.example, scripts/ (start_bridge/start_bot/dev), README rewrite,
  docs/language-comparison.md and docs/vnc-xfce-setup.md

Language decision: hybrid (Python brain + Node/bun Discord layer) because
Discord blocks bot video; native screen broadcast only works via a Node
selfbot library.
2026-06-09 14:51:05 +09:00

52 lines
1.7 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Build the frozen app for manual testing. On macOS this produces
# dist/Jarvis.app; on Linux dist/Jarvis/. There is no Inno-equivalent
# installer step on these platforms, so the bundle directory itself is
# the artefact you'd ship.
set -euo pipefail
cd "$(dirname "$0")/.."
PROJECT_ROOT="$(pwd)"
# Stamp a dev version file so jarvis.get_version() works in the bundle.
GIT_SHA="$(git rev-parse --short=7 HEAD 2>/dev/null || echo local)"
DEV_VERSION="dev-${GIT_SHA}"
echo "[build_installer] Stamping dev _version.py (${DEV_VERSION})..."
cat > "${PROJECT_ROOT}/src/jarvis/_version.py" <<EOF
# Auto-generated by scripts/build_installer.sh
VERSION = "${DEV_VERSION}"
RELEASE_CHANNEL = "develop"
EOF
echo "[build_installer] 🎨 Generating icons..."
python src/desktop_app/desktop_assets/generate_icons.py
echo "[build_installer] 🧹 Cleaning previous builds..."
rm -rf build dist
echo "[build_installer] 📦 Running PyInstaller..."
python -m PyInstaller jarvis_desktop.spec
if [[ "$OSTYPE" == "darwin"* ]]; then
if [[ -d dist/Jarvis.app ]]; then
echo
echo "[build_installer] ✅ SUCCESS"
echo " Bundle: ${PROJECT_ROOT}/dist/Jarvis.app"
echo "[build_installer] No installer is produced on macOS."
else
echo "[build_installer] ❌ Bundle missing at dist/Jarvis.app" >&2
exit 1
fi
else
if [[ -d dist/Jarvis ]]; then
echo
echo "[build_installer] ✅ SUCCESS"
echo " Bundle: ${PROJECT_ROOT}/dist/Jarvis"
echo "[build_installer] No installer is produced on Linux."
else
echo "[build_installer] ❌ Bundle missing at dist/Jarvis" >&2
exit 1
fi
fi