diff options
| author | Adam Malczewski <[email protected]> | 2026-05-22 16:19:35 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-05-22 16:19:35 +0900 |
| commit | 45a4890031192f4e7409443f98e824dad17ba175 (patch) | |
| tree | a28e1b0618f682476b0b57ba70e8ba26a1939a49 /bin | |
| parent | 9ecaabd87c0e51b8a7408dabb0133a9344586859 (diff) | |
| download | dispatch-45a4890031192f4e7409443f98e824dad17ba175.tar.gz dispatch-45a4890031192f4e7409443f98e824dad17ba175.zip | |
feat: Arch Linux packaging with Electron frontend, systemd backend service, and Windows exe build
- Add Electron wrapper (main.cjs, preload.cjs) for desktop frontend
- Add systemd service unit, env config, and sysusers for backend API
- Add PKGBUILD and .install for Arch package (makepkg -si)
- Add desktop entry, SVG/PNG icon, and wrapper scripts
- Add bin/build-pkg, bin/install-pkg, bin/windows-pkg scripts
- Make API port configurable via PORT env var (default 3000, prod 18390)
- Add electron-builder config for Windows exe cross-compilation
- Set vite base to './' for Electron file:// loading
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/build-pkg | 8 | ||||
| -rwxr-xr-x | bin/install-pkg | 15 | ||||
| -rwxr-xr-x | bin/windows-pkg | 31 |
3 files changed, 54 insertions, 0 deletions
diff --git a/bin/build-pkg b/bin/build-pkg new file mode 100755 index 0000000..904a0bb --- /dev/null +++ b/bin/build-pkg @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PACKAGING_DIR="$(dirname "$SCRIPT_DIR")/packaging" + +cd "$PACKAGING_DIR" +makepkg -fd "$@" diff --git a/bin/install-pkg b/bin/install-pkg new file mode 100755 index 0000000..89e55b2 --- /dev/null +++ b/bin/install-pkg @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PACKAGING_DIR="$(dirname "$SCRIPT_DIR")/packaging" + +PKG=$(ls -t "$PACKAGING_DIR"/dispatch-[0-9]*-x86_64.pkg.tar.zst 2>/dev/null | head -1) + +if [ -z "$PKG" ]; then + echo "No package found. Run bin/build-pkg first." >&2 + exit 1 +fi + +echo "Installing $PKG" +yay -U "$PKG" "$@" diff --git a/bin/windows-pkg b/bin/windows-pkg new file mode 100755 index 0000000..693168c --- /dev/null +++ b/bin/windows-pkg @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +FRONTEND_DIR="$PROJECT_DIR/packages/frontend" +DEST="/mnt/c/Users/micro/OneDrive/Documents/Dispatch" + +# Install deps (includes electron + electron-builder as devDependencies) +cd "$PROJECT_DIR" +bun install + +# Build frontend and package for Windows (use production port) +cd "$FRONTEND_DIR" +VITE_API_URL="http://localhost:18390" bun run dist:win + +# Find the output directory +WIN_BUILD=$(ls -d "$FRONTEND_DIR/release/win-unpacked" 2>/dev/null || true) + +if [ -z "$WIN_BUILD" ]; then + echo "Build failed: no win-unpacked directory found in release/" >&2 + exit 1 +fi + +# Copy to Windows Documents +rm -rf "$DEST" +mkdir -p "$DEST" +cp -r "$WIN_BUILD"/. "$DEST"/ + +echo "Windows build copied to: C:\\Users\\micro\\OneDrive\\Documents\\Dispatch" +echo "Run Dispatch.exe from that folder." |
