| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import os
- import time
- import json
- import argparse
- from vs_types import BookerStandaloneConfig
- from gco_wrapper import GCOWrapper
- from logger_setup import setup_app_logger
- from booker_standalone import BookerStandalone
- def load_config(path: str):
- if not os.path.exists(path):
- return {}
- with open(path, "r", encoding="utf-8") as f:
- return json.load(f)
- def main():
- parser = argparse.ArgumentParser(description="Standalone Booker Runner")
- parser.add_argument(
- "-c", "--config",
- type=str,
- required=False,
- default="config/config.json",
- help="Path to standalone booker config.json"
- )
- args = parser.parse_args()
- config_path = args.config
-
- app_logger = setup_app_logger("Booker")
- app_logger.info("Booker Logger is ready! All VSC macros are hooked.")
- cfg_data = load_config(config_path)
- redis_conf = cfg_data.get('redis')
- booker_standalone_config = cfg_data.get('booker_standalone_config')
- cfg = BookerStandaloneConfig.from_json(booker_standalone_config)
- gco_class = BookerStandalone
- wrapper = GCOWrapper(gco_class=gco_class, gco_cfg=cfg, redis_conf=redis_conf)
- wrapper.load()
- wrapper.start()
- app_logger.info(f"Successfully started booker. Press Ctrl+C to stop.")
-
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- app_logger.info("Shutting down Bookers...")
- wrapper.stop()
- if __name__ == "__main__":
- main()
|