From 79dfd14400b56a6da2996a1524e9a5992c082662 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 15 Dec 2025 13:35:35 -0500 Subject: [PATCH] Add Tauri desktop app scaffolding for offline KJV Study MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces a complete Tauri v2 project structure for building a native macOS desktop application. The app runs FastAPI as a sidecar process on port 31102 (number of KJV verses) and renders the existing web UI in a native WebKit webview. Key additions: - src-tauri/: Complete Tauri configuration and Rust source - Desktop entry point (kjvstudy_org/desktop.py) - PyInstaller bundling script for Python sidecar - Desktop-specific pyproject.toml without WeasyPrint - App icons for macOS (.icns) and Windows (.ico) - Makefile.desktop with build targets - Comprehensive DESKTOP.md documentation WeasyPrint is intentionally excluded from the desktop build to avoid native library bundling complexity. PDF buttons are automatically hidden when WeasyPrint is unavailable (existing graceful degradation). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- DESKTOP.md | 142 +++++++++++++++++ Makefile.desktop | 80 ++++++++++ kjvstudy_org/desktop.py | 44 ++++++ pyproject-desktop.toml | 32 ++++ scripts/bundle-desktop.sh | 107 +++++++++++++ src-tauri/Cargo.toml | 23 +++ src-tauri/build.rs | 3 + src-tauri/icons/128x128.png | Bin 0 -> 985 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 2133 bytes src-tauri/icons/32x32.png | Bin 0 -> 268 bytes src-tauri/icons/icon.icns | Bin 0 -> 70387 bytes src-tauri/icons/icon.ico | Bin 0 -> 17741 bytes src-tauri/icons/icon.iconset/icon_128x128.png | Bin 0 -> 7433 bytes .../icons/icon.iconset/icon_128x128@2x.png | Bin 0 -> 12312 bytes src-tauri/icons/icon.iconset/icon_16x16.png | Bin 0 -> 692 bytes .../icons/icon.iconset/icon_16x16@2x.png | Bin 0 -> 1654 bytes src-tauri/icons/icon.iconset/icon_256x256.png | Bin 0 -> 12312 bytes .../icons/icon.iconset/icon_256x256@2x.png | Bin 0 -> 5231 bytes src-tauri/icons/icon.iconset/icon_32x32.png | Bin 0 -> 1654 bytes .../icons/icon.iconset/icon_32x32@2x.png | Bin 0 -> 3727 bytes src-tauri/icons/icon.iconset/icon_512x512.png | Bin 0 -> 5231 bytes src-tauri/icons/icon.iconset/icon_64x64.png | Bin 0 -> 3727 bytes .../icons/icon.iconset/icon_64x64@2x.png | Bin 0 -> 7433 bytes src-tauri/icons/icon.png | Bin 0 -> 5231 bytes src-tauri/src/main.rs | 146 ++++++++++++++++++ 25 files changed, 577 insertions(+) create mode 100644 DESKTOP.md create mode 100644 Makefile.desktop create mode 100644 kjvstudy_org/desktop.py create mode 100644 pyproject-desktop.toml create mode 100755 scripts/bundle-desktop.sh create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.iconset/icon_128x128.png create mode 100644 src-tauri/icons/icon.iconset/icon_128x128@2x.png create mode 100644 src-tauri/icons/icon.iconset/icon_16x16.png create mode 100644 src-tauri/icons/icon.iconset/icon_16x16@2x.png create mode 100644 src-tauri/icons/icon.iconset/icon_256x256.png create mode 100644 src-tauri/icons/icon.iconset/icon_256x256@2x.png create mode 100644 src-tauri/icons/icon.iconset/icon_32x32.png create mode 100644 src-tauri/icons/icon.iconset/icon_32x32@2x.png create mode 100644 src-tauri/icons/icon.iconset/icon_512x512.png create mode 100644 src-tauri/icons/icon.iconset/icon_64x64.png create mode 100644 src-tauri/icons/icon.iconset/icon_64x64@2x.png create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/main.rs diff --git a/DESKTOP.md b/DESKTOP.md new file mode 100644 index 0000000..7427b1e --- /dev/null +++ b/DESKTOP.md @@ -0,0 +1,142 @@ +# KJV Study Desktop App + +A fully offline desktop application for studying the King James Bible, built with [Tauri](https://tauri.app/). + +## Features + +Everything from kjvstudy.org, completely offline: + +- **Complete KJV Bible** - All 31,102 verses from the 1769 Cambridge edition +- **Verse Commentary** - In-depth theological analysis for 12,321+ verses +- **Interlinear Bible** - Hebrew (OT) and Greek (NT) word-by-word analysis +- **Strong's Concordance** - 14,298 Hebrew and Greek word definitions +- **Cross-References** - Treasury of Scripture Knowledge +- **Study Resources** - 36 study guides, 38 topics, 12 reading plans +- **Family Trees** - 429+ biblical figures with genealogies +- **Full-Text Search** - Fast SQLite FTS5 search across all verses +- **Dark Mode** - System-aware theme switching +- **Accessibility** - Full keyboard navigation, screen reader support + +**Note:** PDF export is not available in the desktop version (WeasyPrint system dependencies are not bundled). + +## Requirements + +### For Development +- macOS 10.15+ (Catalina or later) +- Rust (install via [rustup](https://rustup.rs/)) +- Python 3.11+ +- Node.js 18+ (for Tauri CLI) + +### For Users +- macOS 10.15+ (Catalina or later) +- ~200MB disk space + +## Quick Start (Development) + +```bash +# 1. Install Tauri CLI +cargo install tauri-cli + +# 2. Start the Python server (in one terminal) +make -f Makefile.desktop dev + +# 3. Run Tauri in dev mode (in another terminal) +make -f Makefile.desktop dev-tauri +``` + +## Building for Distribution + +```bash +# Full build (bundle Python + build Tauri app) +make -f Makefile.desktop build + +# Or step by step: +make -f Makefile.desktop bundle-python # Create Python executable +make -f Makefile.desktop build-tauri # Build macOS app +``` + +The app bundle will be in `src-tauri/target/release/bundle/`. + +## Architecture + +``` +┌─────────────────────────────────────────────────┐ +│ Tauri Shell │ +│ ┌───────────────────────────────────────────┐ │ +│ │ Native WebKit WebView │ │ +│ │ │ │ +│ │ ┌──────────────────────────────────┐ │ │ +│ │ │ http://127.0.0.1:31102 │ │ │ +│ │ │ │ │ │ +│ │ │ KJV Study Web Interface │ │ │ +│ │ │ (Jinja2 templates + Tufte CSS) │ │ │ +│ │ │ │ │ │ +│ │ └──────────────────────────────────┘ │ │ +│ │ │ │ │ +│ └────────────────────│───────────────────────┘ │ +│ │ │ +│ ┌────────────────────▼───────────────────────┐ │ +│ │ FastAPI Server (Sidecar) │ │ +│ │ │ │ +│ │ • Bible data (JSON) • Search (SQLite)│ │ +│ │ • Commentary • Cross-refs │ │ +│ │ • Interlinear • Strong's │ │ +│ │ • Study guides • Reading plans │ │ +│ └────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────┘ +``` + +**How it works:** + +1. Tauri app launches and spawns the Python/FastAPI server as a sidecar process +2. Server runs on `127.0.0.1:31102` (port = number of KJV verses) +3. WebView navigates to the local server +4. All data is served from bundled JSON/SQLite files +5. On quit, Tauri terminates the sidecar process + +## Port Selection + +The app uses port **31102** - the exact number of verses in the King James Bible. This avoids conflicts with common development ports (3000, 5000, 8000, 8080). + +## Directory Structure + +``` +kjvstudy.org/ +├── src-tauri/ # Tauri application +│ ├── Cargo.toml # Rust dependencies +│ ├── tauri.conf.json # Tauri configuration +│ ├── src/ +│ │ └── main.rs # Sidecar launcher +│ └── icons/ # App icons +├── sidecar/ # Bundled Python executable (after build) +├── kjvstudy_org/ # Python application +│ ├── server.py # FastAPI app +│ ├── desktop.py # Desktop entry point +│ ├── templates/ # Jinja2 templates +│ └── static/ # CSS, JS, fonts +├── data/ # Bible data (JSON) +├── Makefile.desktop # Build commands +├── pyproject-desktop.toml # Desktop dependencies (no WeasyPrint) +└── DESKTOP.md # This file +``` + +## Troubleshooting + +### Server won't start +Check if port 31102 is already in use: +```bash +lsof -i :31102 +``` + +### App shows blank screen +The server may not be ready. Check Console.app for logs, or run in dev mode to see output. + +### Icons not showing +Regenerate icons: +```bash +make -f Makefile.desktop icons +``` + +## License + +MIT License - See LICENSE file for details. diff --git a/Makefile.desktop b/Makefile.desktop new file mode 100644 index 0000000..cb52ff9 --- /dev/null +++ b/Makefile.desktop @@ -0,0 +1,80 @@ +# Makefile for KJV Study Desktop App +# Usage: make -f Makefile.desktop [target] + +.PHONY: all clean bundle-python build-tauri build dev install-deps icons + +# Default target: build everything +all: install-deps bundle-python build-tauri + +# Install required dependencies +install-deps: + @echo "=== Installing dependencies ===" + pip install pyinstaller + cd src-tauri && cargo fetch + @echo "Dependencies installed!" + +# Bundle Python application with PyInstaller +bundle-python: + @echo "=== Bundling Python server ===" + ./scripts/bundle-desktop.sh + @echo "Python bundle complete!" + +# Build Tauri application +build-tauri: + @echo "=== Building Tauri app ===" + cd src-tauri && cargo tauri build + @echo "Tauri build complete!" + +# Full production build +build: all + @echo "" + @echo "=== Build Complete! ===" + @echo "App bundle: src-tauri/target/release/bundle/" + +# Development mode (runs server + opens browser) +dev: + @echo "=== Starting development server ===" + uv run uvicorn kjvstudy_org.server:app --host 127.0.0.1 --port 31102 --reload + +# Development with Tauri +dev-tauri: + @echo "=== Starting Tauri dev mode ===" + @echo "Make sure the Python server is running (make -f Makefile.desktop dev)" + cd src-tauri && cargo tauri dev + +# Generate app icons from source PNG (requires ImageMagick) +icons: + @echo "=== Generating icons ===" + @if [ -f "kjvstudy_org/static/images/icon-source.png" ]; then \ + convert kjvstudy_org/static/images/icon-source.png -resize 32x32 src-tauri/icons/32x32.png; \ + convert kjvstudy_org/static/images/icon-source.png -resize 128x128 src-tauri/icons/128x128.png; \ + convert kjvstudy_org/static/images/icon-source.png -resize 256x256 src-tauri/icons/128x128@2x.png; \ + convert kjvstudy_org/static/images/icon-source.png -resize 512x512 src-tauri/icons/icon.png; \ + echo "Icons generated!"; \ + else \ + echo "No icon-source.png found. Using placeholders."; \ + fi + +# Clean build artifacts +clean: + @echo "=== Cleaning build artifacts ===" + rm -rf build/ dist/ *.spec + rm -rf sidecar/ + rm -rf src-tauri/target/ + @echo "Clean complete!" + +# Help +help: + @echo "KJV Study Desktop Build System" + @echo "" + @echo "Targets:" + @echo " all - Build everything (default)" + @echo " install-deps - Install Python and Rust dependencies" + @echo " bundle-python- Bundle Python server with PyInstaller" + @echo " build-tauri - Build Tauri application" + @echo " build - Full production build" + @echo " dev - Run development server on port 31102" + @echo " dev-tauri - Run Tauri in development mode" + @echo " icons - Generate icons from source PNG" + @echo " clean - Remove build artifacts" + @echo " help - Show this help" diff --git a/kjvstudy_org/desktop.py b/kjvstudy_org/desktop.py new file mode 100644 index 0000000..ceeb381 --- /dev/null +++ b/kjvstudy_org/desktop.py @@ -0,0 +1,44 @@ +"""Desktop application entry point for KJV Study. + +This module provides a standalone entry point for the desktop application, +configured to run on a non-standard port (31102 - the number of verses in the KJV). +""" + +import os +import sys + + +def main(): + """Start the KJV Study server for desktop use.""" + import uvicorn + + # Get port from environment or use default (31102 = number of KJV verses) + port = int(os.environ.get("KJVSTUDY_PORT", "31102")) + host = os.environ.get("KJVSTUDY_HOST", "127.0.0.1") + + # Determine the base directory for resources + if getattr(sys, "frozen", False): + # Running as bundled executable (PyInstaller) + base_dir = os.path.dirname(sys.executable) + else: + # Running as script + base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + # Change to base directory so relative paths work + os.chdir(base_dir) + + print(f"Starting KJV Study server on {host}:{port}") + print(f"Base directory: {base_dir}") + + uvicorn.run( + "kjvstudy_org.server:app", + host=host, + port=port, + log_level="warning", + # Disable reload in production + reload=False, + ) + + +if __name__ == "__main__": + main() diff --git a/pyproject-desktop.toml b/pyproject-desktop.toml new file mode 100644 index 0000000..c81ad1d --- /dev/null +++ b/pyproject-desktop.toml @@ -0,0 +1,32 @@ +# Desktop-specific pyproject.toml (without WeasyPrint for easier bundling) +# Use this for building the Tauri desktop application + +[project] +name = "kjvstudy-desktop" +version = "1.0.0" +description = "KJV Study - Offline Bible Study Desktop Application" +readme = "README.md" +requires-python = ">=3.11" +dependencies = [ + "fastapi[standard]>=0.115.12", + "ged4py>=0.5.2", + "mistune>=3.0.2", + "parse>=1.20.2", + "python-gedcom>=1.0.0", + # Note: weasyprint intentionally excluded - PDF buttons will be hidden + # Note: requests excluded - not actually used in the codebase +] + +[project.scripts] +kjvstudy-server = "kjvstudy_org.desktop:main" + +[build-system] +requires = ["setuptools>=45", "wheel"] +build-backend = "setuptools.build_meta" + +[tool.setuptools.packages.find] +where = ["."] +include = ["kjvstudy_org*"] + +[tool.setuptools.package-data] +kjvstudy_org = ["static/**/*", "templates/**/*"] diff --git a/scripts/bundle-desktop.sh b/scripts/bundle-desktop.sh new file mode 100755 index 0000000..40e2ce6 --- /dev/null +++ b/scripts/bundle-desktop.sh @@ -0,0 +1,107 @@ +#!/bin/bash +# Bundle the KJV Study Python application for desktop distribution +# This script creates a standalone executable using PyInstaller + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +OUTPUT_DIR="$PROJECT_DIR/sidecar" + +echo "=== KJV Study Desktop Bundler ===" +echo "Project directory: $PROJECT_DIR" +echo "Output directory: $OUTPUT_DIR" + +cd "$PROJECT_DIR" + +# Create output directory +mkdir -p "$OUTPUT_DIR" + +# Install desktop dependencies (without weasyprint) +echo "" +echo "=== Installing desktop dependencies ===" +pip install pyinstaller +pip install "fastapi[standard]>=0.115.12" "ged4py>=0.5.2" "mistune>=3.0.2" "parse>=1.20.2" "python-gedcom>=1.0.0" + +# Create PyInstaller spec file +echo "" +echo "=== Creating PyInstaller spec ===" +cat > "$PROJECT_DIR/kjvstudy-server.spec" << 'EOF' +# -*- mode: python ; coding: utf-8 -*- +import os +from PyInstaller.utils.hooks import collect_data_files, collect_submodules + +block_cipher = None + +# Collect all kjvstudy_org submodules +hiddenimports = collect_submodules('kjvstudy_org') +hiddenimports += collect_submodules('fastapi') +hiddenimports += collect_submodules('starlette') +hiddenimports += collect_submodules('uvicorn') +hiddenimports += ['kjvstudy_org.server', 'kjvstudy_org.desktop'] + +# Collect data files +datas = [ + ('kjvstudy_org/templates', 'kjvstudy_org/templates'), + ('kjvstudy_org/static', 'kjvstudy_org/static'), + ('data', 'data'), +] + +a = Analysis( + ['kjvstudy_org/desktop.py'], + pathex=[], + binaries=[], + datas=datas, + hiddenimports=hiddenimports, + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=['weasyprint', 'cairo', 'gi'], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='kjvstudy-server', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) +EOF + +# Run PyInstaller +echo "" +echo "=== Running PyInstaller ===" +pyinstaller --clean --noconfirm kjvstudy-server.spec + +# Move output to sidecar directory +echo "" +echo "=== Moving output to sidecar directory ===" +cp -f "dist/kjvstudy-server" "$OUTPUT_DIR/" + +echo "" +echo "=== Bundle complete! ===" +echo "Executable: $OUTPUT_DIR/kjvstudy-server" +echo "" +echo "Next steps:" +echo " 1. cd src-tauri" +echo " 2. cargo tauri build" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..1e70793 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "kjvstudy" +version = "1.0.0" +description = "KJV Study - Offline Bible Study App" +authors = ["Kenneth Reitz"] +license = "MIT" +repository = "https://github.com/kennethreitz/kjvstudy.org" +edition = "2021" + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = ["shell-open"] } +tauri-plugin-shell = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +tokio = { version = "1", features = ["process", "time"] } +reqwest = { version = "0.12", features = ["blocking"] } + +[features] +default = ["custom-protocol"] +custom-protocol = ["tauri/custom-protocol"] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..279d1e48ac0314dd3b77ed766322e940caa4f197 GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU|!(q;uumf=k45sQ*Rsau%_;f z3GP}IXsoGtcEc`_4V89p68*(g1rD&Mz56}wh)y#0# zvEiA5L$SaDOO6Y3;-i_5&9C47|J$G6)vM2}zU6jd@&;=!Mg0c%2UA-oh$uL}2u+zF zq)_}}mC_P%2h9>!$xB=TiWRJaLGPGDcBbzh%%aGvR(t~s2l5qb;{pHE9z$za^P{>rDd&vyki*?RwwwG{T) z;KFd|`osemK**%W2^M@)?cvx_?%&4SW~o zs4^8i-rgo!I#;aW`M*17o+aM{YP_BldtVbso6b0Satm|8*WU?|>GPOo6-P4M+AkLV z+2}RHmiqWLug(fxkYULB|14<`}$aQzx6!7(Qtov576Ov#2WMh9{WCXmu2Am5}#Zi$+ScM zM6`LGvWLvf`y7k7pRBpQuHsp3>9M0$k#A1znlIkKQhA8q+L(j0s6~F4U<-@oE5WKf z1)($76~Ej$uv($f?T7bt29*=?|2|bWL~`!Z;Y==CryYMNvQF5-`o}Awo|8Y<)-j)c zs>#4v)b{?DM1^~k*4>0VGrF(uo(@jZ?(f=G{V;kZFk|&@hWvRkH@TE}7XEDISP-#d z)n`u82fatF+$k)mLX47Q}OqX#D`C<3I-q-x%VK(m*Q%&&GkNU+QR_+&{ zu-0Sh^QoJdLte9`A9|3=5-|0lkIb$$3|vZcln#1xPw;IE*7*{|%SfK)f$TPV-6ygJs zR%$T_YFm6zplVBm0zv3d7z7+qf+7U1L`y930mP7mxpCHX^~bC=^Xr_wzP-NloxS$? z_7R3`^EW12kpaLsFn|*ZfZ$sMNJM;zI&>utfMgTM*}Nk|^y=&CIUj{x0BoMmhEh7ZE4YFAUoCRY8MbWz`!|R$D(k` z2-Z6NuV5^A-jMrDJva7JFrkvyzZ5vdx2SzeMd1|HO@h5G62N@gz}jlI*A&Cts2YEQ z-C~4P{YE0-(E3a;-;GplRdG8XZ8&pLAhJ-{!3j&XT-d%5Z76Q93MNgMVnT}6d#`H| z1o4#p^n5utOYQ=St(P-%lroY9E|LyV(B(|)h;!_#xsa4mYH=J1%_f6h>@g&1{ z5;z`(mB)0!BSon@iITh%-MPc{yI~u{EqJc$c5wDBvgE4oC(5=yuU*&uz~+)>q+?yr z0$FGK>&`u0TG911NVhF7E?_;g+M%85;Ty*-n>(GC&M2Kr-r>dE{;G8%0<*QO4{?L$ zgXQh4B)ONEyrnt{(nlN%Z2Rl751F4}Uj>B~|EWpdw+Poub3vV{5JyCu`M8<`=@i!c zVs-&o@JAicqXrF!RNrY1*S3Bc@pLHfmOgpV0rf+9s`o4C0SqjxBkB26?DLk^vX(_( zlO;XlHC1+KCJsl&tUb*>j8i>Xe+d(1QWhpMs~h`+(Un zT4E?se*R<`E$>}DjLxO#$_!=i7TD769p_2kuU5yXgc)Ga} z8?=VfWjMBDy~#mjJ?u~1g|ofnIX*@cVL)0A8S4Ap0k;gLQ2qT{M42jZvkc@1f07BB zM=qU}Rc6-g@(Q0HQ=8Y~6twJ;J4s->W56$F@;09NNsz!vWC*G%*g;nYzQ z`wJ?k`tfZl9b^<-1D;?C`-AWs)fmW*fJ_uGpHdNN{n`pxB zzRW8hfK=cnO^EbBGE)4GPk7LOMEoBhekSMW2weIuFl0KahytY^u;$?x#Xl4tm@jg& z{$N$o8<1g)Nhjy;>Ptq&s0Q5%vMy%kpP>4NS?uLM?v7E+kJif5Ga(V79pQ&2LgWGR za9=_NK%jwZ!l~}iu&idM%KJ;|`~TfWiAY-V(k%6uzKI`m ztny_Q-#{6=*!_O_potxf6rd>=||0*jbGx_j*XP!aYw^CzSs_7@m`6Ktpac zktqUU1Ta%@75h@nGu1^TNuoDZ@_y@LY}nik2^TvFq&e!Bwob5p6)|noR1E5R{v(ht zkA$Ddw0mL6(^O0BJc-sFmZ9<`%A8P6vbn9U0pYgCqaH3owBb^@z2s`D8|tm~U4X-i z^mSG`B_b9=bJX2qEI$Z;y-`x%bfL%$;fCF-bFcK0^9TZUjgjPI0(bm?r{*e}Y>LD+ zRZs;@P+NjU6TT_{$4z4TWm(1ZrQo+{`Zo_TW1SJZ zpkQow;YZ7_-I%x7zqrWReRe8$Jr>+x{A-NT)&ce~2`QGEemdq%+H6CdPayD6JC80I z%O9Lf@^dLV8+@)=^v1uCn_@o~$})+9C5SYD!iaw{OT&CSWk-(jS@?8JrBJkyC@thU z(?Z21F!OphyDGmoVu#W%^Q3R-*rjm79c)NHrKb%3=sq^9G{|l3|k*xp# literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..d11d649cf5cef648490ab0af87ce6257c14baebc GIT binary patch literal 268 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e8ae656d5db6463e1be666bdb40fb70a6414f1b8 GIT binary patch literal 17741 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.iconset/icon_128x128@2x.png b/src-tauri/icons/icon.iconset/icon_128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8795c8bf903359914da8e246bc1d721fba23eb GIT binary patch literal 12312 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 d3!5$o_Rj^b6?B-z3%IKeN#7kxhg3v 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.iconset/icon_32x32.png b/src-tauri/icons/icon.iconset/icon_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..86439f887b9d731cce010291340b30c2d46c0951 GIT binary patch literal 1654 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.iconset/icon_512x512.png b/src-tauri/icons/icon.iconset/icon_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..6564ee85bef9c956319a7f969b8353d9e6f5e144 GIT binary patch literal 5231 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.iconset/icon_64x64.png b/src-tauri/icons/icon.iconset/icon_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..63bfffcc7dda80049c540c9a0432003e82d19480 GIT binary patch literal 3727 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.iconset/icon_64x64@2x.png b/src-tauri/icons/icon.iconset/icon_64x64@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..217393f82a727842384c92eeac1b1ba0b2e201bd GIT binary patch literal 7433 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6564ee85bef9c956319a7f969b8353d9e6f5e144 GIT binary patch literal 5231 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..11c6f69 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,146 @@ +// Prevents additional console window on Windows in release +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use std::process::{Child, Command}; +use std::sync::Mutex; +use std::time::Duration; +use tauri::{AppHandle, Manager, RunEvent}; + +struct ServerProcess(Mutex>); + +fn find_python_executable(app: &AppHandle) -> Option { + // In development, use system Python + if cfg!(debug_assertions) { + return Some("python3".to_string()); + } + + // In production, look for bundled Python sidecar + let resource_path = app.path().resource_dir().ok()?; + + #[cfg(target_os = "macos")] + { + let sidecar_path = resource_path.join("sidecar").join("kjvstudy-server"); + if sidecar_path.exists() { + return Some(sidecar_path.to_string_lossy().to_string()); + } + } + + #[cfg(target_os = "windows")] + { + let sidecar_path = resource_path.join("sidecar").join("kjvstudy-server.exe"); + if sidecar_path.exists() { + return Some(sidecar_path.to_string_lossy().to_string()); + } + } + + // Fallback to system Python + Some("python3".to_string()) +} + +fn start_server(app: &AppHandle) -> Option { + let python = find_python_executable(app)?; + + // Get the resource directory for data files + let resource_dir = app.path().resource_dir().ok()?; + + // For development, use the project directory + let working_dir = if cfg!(debug_assertions) { + std::env::current_dir().ok()? + } else { + resource_dir.clone() + }; + + println!("Starting KJV Study server..."); + println!("Python executable: {}", python); + println!("Working directory: {:?}", working_dir); + + let child = if python.ends_with("kjvstudy-server") || python.ends_with("kjvstudy-server.exe") { + // Running bundled executable + Command::new(&python) + .current_dir(&working_dir) + .env("KJVSTUDY_PORT", "31102") + .spawn() + .ok()? + } else { + // Running with Python interpreter (development) + Command::new(&python) + .args([ + "-m", "uvicorn", + "kjvstudy_org.server:app", + "--host", "127.0.0.1", + "--port", "31102", + "--log-level", "warning" + ]) + .current_dir(&working_dir) + .spawn() + .ok()? + }; + + Some(child) +} + +fn wait_for_server(max_attempts: u32) -> bool { + let client = reqwest::blocking::Client::builder() + .timeout(Duration::from_secs(1)) + .build() + .unwrap(); + + for attempt in 1..=max_attempts { + println!("Waiting for server... (attempt {}/{})", attempt, max_attempts); + + match client.get("http://127.0.0.1:31102/api/health").send() { + Ok(response) if response.status().is_success() => { + println!("Server is ready!"); + return true; + } + _ => { + std::thread::sleep(Duration::from_millis(500)); + } + } + } + + println!("Server failed to start after {} attempts", max_attempts); + false +} + +fn main() { + tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) + .manage(ServerProcess(Mutex::new(None))) + .setup(|app| { + // Start the Python server + let handle = app.handle().clone(); + + if let Some(child) = start_server(&handle) { + let state = app.state::(); + *state.0.lock().unwrap() = Some(child); + + // Wait for server to be ready + if !wait_for_server(30) { + eprintln!("Warning: Server may not be fully ready"); + } + } else { + eprintln!("Failed to start server process"); + } + + // Navigate to the local server + if let Some(window) = app.get_webview_window("main") { + let _ = window.eval("window.location.href = 'http://127.0.0.1:31102'"); + } + + Ok(()) + }) + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|app_handle, event| { + if let RunEvent::Exit = event { + // Clean up: kill the server process + let state = app_handle.state::(); + if let Some(mut child) = state.0.lock().unwrap().take() { + println!("Shutting down server..."); + let _ = child.kill(); + let _ = child.wait(); + } + } + }); +}