Remove threading
This commit is contained in:
parent
dd3cc69394
commit
9055897965
1 changed files with 3 additions and 115 deletions
118
run.py
118
run.py
|
@ -1,117 +1,5 @@
|
||||||
#!/bin/python3
|
"""Main run file for J.A.R.V.I.S."""
|
||||||
# flake8: noqa
|
from jarvis import run
|
||||||
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.")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
freeze_support()
|
run()
|
||||||
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.")
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue