Files
Browser/ren_browser/app.py
2025-05-28 22:11:14 -05:00

74 lines
2.3 KiB
Python

import argparse
import subprocess
import sys
import flet as ft
from flet import AppView, Page
from ren_browser.ui.ui import build_ui
# Current renderer name
RENDERER = "plaintext"
async def main(page: Page):
# Build the main UI layout
build_ui(page)
def run():
global RENDERER
parser = argparse.ArgumentParser(description="Ren Browser")
parser.add_argument("-r", "--renderer", choices=["plaintext", "micron"], default=RENDERER, help="Select renderer (plaintext or micron)")
parser.add_argument("-w", "--web", action="store_true", help="Launch in web browser mode")
parser.add_argument("-p", "--port", type=int, default=None, help="Port for web server")
args = parser.parse_args()
RENDERER = args.renderer
if args.web:
# Run web mode on optional fixed port
if args.port is not None:
ft.app(main, view=AppView.WEB_BROWSER, port=args.port)
else:
ft.app(main, view=AppView.WEB_BROWSER)
else:
ft.app(main)
if __name__ == "__main__":
run()
def web():
"""Launch Ren Browser in web mode via Flet CLI."""
rc = subprocess.call(["flet", "run", "ren_browser/app.py", "--web"])
sys.exit(rc)
def android():
"""Launch Ren Browser in Android mode via Flet CLI."""
rc = subprocess.call(["flet", "run", "ren_browser/app.py", "--android"])
sys.exit(rc)
def ios():
"""Launch Ren Browser in iOS mode via Flet CLI."""
rc = subprocess.call(["flet", "run", "ren_browser/app.py", "--ios"])
sys.exit(rc)
# Hot reload (dev) mode entrypoints
def run_dev():
"""Launch Ren Browser in desktop mode via Flet CLI with hot reload."""
rc = subprocess.call(["flet", "run", "-d", "-r", "ren_browser/app.py"])
sys.exit(rc)
def web_dev():
"""Launch Ren Browser in web mode via Flet CLI with hot reload."""
rc = subprocess.call(["flet", "run", "--web", "-d", "-r", "ren_browser/app.py"])
sys.exit(rc)
def android_dev():
"""Launch Ren Browser in Android mode via Flet CLI with hot reload."""
rc = subprocess.call(["flet", "run", "--android", "-d", "-r", "ren_browser/app.py"])
sys.exit(rc)
def ios_dev():
"""Launch Ren Browser in iOS mode via Flet CLI with hot reload."""
rc = subprocess.call(["flet", "run", "--ios", "-d", "-r", "ren_browser/app.py"])
sys.exit(rc)