38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
import logging
|
|
|
|
from .config import Settings
|
|
from .worker import Worker
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(description="LAI issue-driven coding worker")
|
|
parser.add_argument(
|
|
"command",
|
|
choices=("worker", "once", "check", "preflight"),
|
|
nargs="?",
|
|
default="worker",
|
|
)
|
|
parser.add_argument("--log-level", default="INFO")
|
|
arguments = parser.parse_args()
|
|
logging.basicConfig(
|
|
level=getattr(logging, arguments.log_level.upper(), logging.INFO),
|
|
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
|
|
)
|
|
settings = Settings.from_env()
|
|
if arguments.command == "check":
|
|
logging.getLogger(__name__).info("Configuration is valid")
|
|
return
|
|
worker = Worker.create(settings)
|
|
if arguments.command == "preflight":
|
|
worker.preflight()
|
|
elif arguments.command == "once":
|
|
worker.run_once()
|
|
else:
|
|
worker.run_forever()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main() |