74 lines
2.3 KiB
Python
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)
|