mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 16:54:32 +00:00
- Default to Application Window mode with full app menu; status bar overlay remains available - Restore clickable startup Splash Tip (5s) with animated GIF and live counter; use light theme (Aqua) - Status bar item: monospaced "P" icon; left click shows overlay (status mode) or main window (app mode) - Overlay: add Maximize button (□) to toggle back to main window; keep click‑through elsewhere - Global hotkey Cmd+Opt+Shift+P toggles modes; Prole menu item mirrors the same toggle and updates title dynamically - Application menu (Prole): Show Status Bar / Show Main Window (contextual), Refresh Now, Quit - Application Window layout: non‑scrolling, vertical 1‑line rows (svc, k3s aggregate, local) with top‑right timestamp; bottom‑left controls (⟳ Refresh, _ Minimize) - Parameterize endpoints via `prole.properties` (bundled + user override). Replace legacy raspberry with retropie defaults - ServiceChecker + UI read endpoints from Config loader; tooltips/labels reflect configured hosts/ports - Build script: generate `Info.plist` with `LSUIElement=false`; bundle resources (`prole-type.gif`, `prole.properties`); ad‑hoc codesign. Universal build supported - Documentation: rewrite README with technical build/run/config details and operational posture Files: - proleStatus/Sources/: AppDelegate.swift, OverlayWindow.swift, StatusView.swift, StatusItemController.swift, SplashTipWindowController.swift, MainWindowController.swift, AppStatusView.swift, ServiceChecker.swift, Config.swift - proleStatus/build.sh - proleStatus/prole.properties - proleStatus/README.md Notes: - Build verified via `./build.sh build` (arm64). App starts in App Window mode with light theme; menu + hotkey + overlay toggle operate as intended
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
"""
|
|
Build helpers for the Prole installer (root-level package).
|
|
|
|
UI-agnostic command composition for the Prole macOS app build.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
import tkinter as tk
|
|
from tkinter import ttk, scrolledtext
|
|
|
|
from . import main as inst_main
|
|
from . import screen as ui
|
|
|
|
def get_build_command(project_root: Path, env: str | None) -> str:
|
|
"""Return the Prole app build command with an env comment suffix.
|
|
|
|
Example output:
|
|
cd "/path/to/repo" && ./prole-app/build.sh build # Dev
|
|
"""
|
|
env_label = (env or "Dev").strip().title()
|
|
prole_root = str(project_root)
|
|
return f"cd \"{prole_root}\" && ./prole-app/build.sh build # {env_label}"
|
|
|
|
|
|
# ---------------- Screen (UI) helpers ----------------
|
|
def create_build_page(app):
|
|
"""Create the Build page UI and register it via installer.main."""
|
|
f = ttk.Frame(app.page_area)
|
|
f.place(x=0, y=0, relwidth=1, relheight=1)
|
|
|
|
ttk.Label(f, text='Build', style='Title.TLabel').pack(anchor='w', padx=24, pady=(24, 6))
|
|
ttk.Label(f, text='Choose a target and build the artifacts.', style='Body.TLabel').pack(anchor='w', padx=24)
|
|
|
|
wrap = ttk.Frame(f)
|
|
wrap.pack(anchor='w', padx=24, pady=12)
|
|
ttk.Label(wrap, text='Target Environment:', style='Body.TLabel').pack(side='left')
|
|
app.deploy_env_var = tk.StringVar(value='Dev')
|
|
ttk.Combobox(wrap, textvariable=app.deploy_env_var, values=['Dev', 'Service', 'Prod'], state='readonly', width=18).pack(side='left', padx=10)
|
|
|
|
# Build output console
|
|
app.build_output = scrolledtext.ScrolledText(f, height=12, bg='#fafafa', fg='#1d1d1f')
|
|
app.build_output.pack(fill='both', expand=True, padx=24, pady=12)
|
|
|
|
inst_main.register_page(app, 'build', f)
|
|
return f
|