First commit

This commit is contained in:
牟不懂哎
2026-04-02 21:38:29 +08:00
commit 22326cf1b2
85 changed files with 24385 additions and 0 deletions
+49
View File
@@ -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