diff --git a/run.py b/run.py index 844831e..7e6a73e 100755 --- a/run.py +++ b/run.py @@ -1,117 +1,5 @@ -#!/bin/python3 -# flake8: noqa -from importlib import reload as ireload -from multiprocessing import Process, Value, freeze_support -from pathlib import Path -from time import sleep - -import git - -import jarvis -from jarvis.config import get_config - - -def run(): - ctx = None - while True: - ireload(jarvis) - ctx = jarvis.run(ctx) - - -def restart(): - global jarvis_process - Path(get_pid_file()).unlink() - jarvis_process.kill() - jarvis_process = Process(target=run, name="jarvis") - jarvis_process.start() - - -def update(): - repo = git.Repo(".") - dirty = repo.is_dirty() - if dirty: - print(" Local system has uncommitted changes.") - current_hash = repo.head.object.hexsha - origin = repo.remotes.origin - origin.fetch() - if current_hash != origin.refs["main"].object.hexsha: - if dirty: - return 2 - origin.pull() - return 0 - return 1 - - -def get_pid_file(): - return f"jarvis.{get_pid()}.pid" - - -def get_pid(): - global jarvis_process - return jarvis_process.pid - - -def cli(): - pfile = Path(get_pid_file()) - while not pfile.exists(): - sleep(0.2) - print( - """ - All systems online. - -Command List: - (R)eload - (U)pdate - (Q)uit - """ - ) - while True: - cmd = input("> ") - if cmd.lower() in ["q", "quit", "e", "exit"]: - print(" Shutting down core systems...") - pfile.unlink() - break - if cmd.lower() in ["u", "update"]: - print(" Updating core systems...") - status = update() - if status == 0: - restart() - pfile = Path(get_pid_file()) - while not pfile.exists(): - sleep(0.2) - print(" Core systems successfully updated.") - elif status == 1: - print(" No core updates available.") - elif status == 2: - print(" Core system update available, but core is dirty.") - if cmd.lower() in ["r", "reload"]: - print(" Reloading core systems...") - restart() - pfile = Path(get_pid_file()) - while not pfile.exists(): - sleep(0.2) - print(" All systems reloaded.") - +"""Main run file for J.A.R.V.I.S.""" +from jarvis import run if __name__ == "__main__": - freeze_support() - config = get_config() - pid_file = Value("i", 0) - jarvis_process = Process(target=run, name="jarvis") - logo = jarvis.logo.get_logo(config.logo) - print(logo) - print("Initializing....") - print(" Updating core systems...") - status = update() - if status == 0: - print(" Core systems successfully updated") - elif status == 1: - print(" No core updates available.") - elif status == 2: - print(" Core updates available, but not applied.") - print(" Starting core systems...") - jarvis_process.start() - cli() - if jarvis_process.is_alive(): - jarvis_process.kill() - print("All systems shut down.") + run()