First commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""
|
||||
First
|
||||
Author: vs-olitus | https://github.com/vs-olitus/First
|
||||
"""
|
||||
import asyncio
|
||||
import sys
|
||||
|
||||
from src.cli import parse_cli_options
|
||||
from src.logger import create_logger
|
||||
from src.engine import DebugEngine
|
||||
from src.userscript import load_userscripts, load_userscripts_by_files
|
||||
|
||||
|
||||
async def main():
|
||||
options = parse_cli_options()
|
||||
logger = create_logger(options)
|
||||
|
||||
# Load userscripts
|
||||
if options.script_files:
|
||||
userscripts = load_userscripts_by_files(options.script_files)
|
||||
else:
|
||||
userscripts = load_userscripts(options.scripts_dir)
|
||||
if userscripts:
|
||||
logger.info(f"[userscript] loaded {len(userscripts)} userscript(s) from {options.scripts_dir}:")
|
||||
for s in userscripts:
|
||||
logger.info(f"[userscript] - {s.name} (run-at: {s.run_at}, match: {s.match})")
|
||||
else:
|
||||
logger.info(f"[userscript] no userscripts found in {options.scripts_dir}")
|
||||
|
||||
engine = DebugEngine(options, logger, userscripts)
|
||||
try:
|
||||
await engine.start()
|
||||
except Exception:
|
||||
sys.exit(1)
|
||||
|
||||
# Keep running until interrupted
|
||||
try:
|
||||
await asyncio.Future()
|
||||
except (KeyboardInterrupt, asyncio.CancelledError):
|
||||
logger.info("[server] shutting down...")
|
||||
finally:
|
||||
await engine.stop()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
asyncio.run(main())
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
Reference in New Issue
Block a user