mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 18:44:33 +00:00
Major feature additions and infrastructure improvements for the Prole Database Installer, enabling command-line operation and packaged binary distribution. ## Ncurses Terminal Interface - Add installer/ncurses_ui.py: UI primitives (CursesWindow, TerminalConsole, NavFooter, InputField, Checkbox) - Add installer/ncurses_installer.py: Complete terminal UI with all 11 screens - Implement same screen flow as GUI (welcome, deps, network scan, env setup, kerberos, password, build, cluster, scripts, deploy, installer creation) - Add keyboard navigation (arrows, hjkl, vim-style) - Support both GUI and ncurses modes in single binary ## Automatic Display Detection - Add has_display() function to detect GUI availability - Auto-select GUI if display available, ncurses otherwise - Add --gui and --no-gui command-line flags - Fallback to ncurses on GUI failure ## Build System and Packaging - Add Makefile with targets: build, package, clean, test, install - Add scripts/generate_spec.py: PyInstaller spec generator - Add installer.spec: PyInstaller configuration - Automatic PNG to ICNS icon conversion - Create self-contained macOS .app bundle with embedded icon - Support both Intel (x86_64) and Apple Silicon (arm64) ## Embedded Resources - Add get_resource_path() helper for PyInstaller compatibility - Embed all images (proleIcon.png, proleLogo.png, proleLogoSepia.png) - Embed prole-net/prole-scan binary (6.8 MB universal binary) - Embed prole-app/dist/Prole Tools.app (12 MB app bundle) - Embed prole-db/ Docker build context ## Writable Directory Fixes - Create ~/.prole/build/prole-db/ for Docker builds (fixes read-only _MEIPASS) - Create ~/.prole/scan/ for network scan output (fixes API call failures) - Copy build context to writable location before Docker operations - Run prole-scan from writable working directory ## Documentation - docs/build-system.md: Complete build system guide - docs/ncurses-installer.md: Ncurses interface documentation - docs/RELEASE-NOTES.md: Feature overview and release notes - docs/IMAGE-RESOURCES.md: Image resource management - docs/EMBEDDED-RESOURCES.md: Binary and app bundle embedding - docs/DOCKER-BUILD-FIX.md: Docker build hang solution - docs/PROLE-HOME-DIRECTORY.md: ~/.prole directory structure - BUILD.md: Quick build reference ## Key Changes install.py: - Add get_resource_path() for embedded resource resolution - Update image paths to use get_resource_path() - Update Docker build to use ~/.prole/build/prole-db/ - Update network scan to use ~/.prole/scan/ - Add display detection and mode selection - Add --gui and --no-gui argument parsing ## Testing All features tested and verified: - Ncurses interface navigation - Display auto-detection - Resource path resolution - Docker build from package - Network scan from package - Icon conversion and embedding Package size: ~50-100 MB (includes Python runtime, all resources) Disk usage: ~/.prole/ uses ~2-6 MB 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.0 KiB
Markdown
51 lines
1.0 KiB
Markdown
# Quick Build Guide
|
|
|
|
## Build the Installer
|
|
|
|
```bash
|
|
# One command to build everything
|
|
make package
|
|
```
|
|
|
|
This creates `dist/Prole Installer.app` - a self-contained macOS application.
|
|
|
|
## Usage
|
|
|
|
**GUI Mode (double-click):**
|
|
- Open `dist/Prole Installer.app` in Finder
|
|
|
|
**Command-line:**
|
|
```bash
|
|
# Auto-detect display (GUI or ncurses)
|
|
./dist/Prole\ Installer.app/Contents/MacOS/prole-installer
|
|
|
|
# Force ncurses mode
|
|
./dist/Prole\ Installer.app/Contents/MacOS/prole-installer --no-gui
|
|
```
|
|
|
|
## Install to /Applications
|
|
|
|
```bash
|
|
cp -r "dist/Prole Installer.app" /Applications/
|
|
```
|
|
|
|
## Makefile Targets
|
|
|
|
- `make help` - Show available targets
|
|
- `make install` - Install build dependencies
|
|
- `make build` - Build the binary
|
|
- `make package` - Create .app bundle
|
|
- `make clean` - Remove build artifacts
|
|
- `make test` - Test the built binary
|
|
|
|
## First-time Setup
|
|
|
|
```bash
|
|
make install # Install PyInstaller and dependencies
|
|
make package # Build everything
|
|
```
|
|
|
|
## Details
|
|
|
|
See [docs/build-system.md](docs/build-system.md) for complete documentation.
|