diff --git a/src/auto_commit_service/__main__.py b/src/auto_commit_service/__main__.py index 20adcfb..84ef408 100644 --- a/src/auto_commit_service/__main__.py +++ b/src/auto_commit_service/__main__.py @@ -1,8 +1,10 @@ """Entry point for running as module: python -m auto_commit_service""" +import json import logging import sys from logging.handlers import RotatingFileHandler +from pathlib import Path import uvicorn from .config import AutoCommitSettings @@ -44,9 +46,39 @@ def setup_logging(settings: AutoCommitSettings) -> None: logging.info(f"Logging to {settings.log_file}") +def load_daemon_config(cwd: Path) -> dict: + """Load daemon-specific config from startup-config.json.""" + config_path = Path.home() / ".config" / "commits" / "startup-config.json" + if not config_path.exists(): + return {} + + try: + data = json.loads(config_path.read_text()) + # Find daemon entry matching current directory + for daemon in data.get("daemons", []): + if daemon.get("directory") == str(cwd): + return daemon + except (json.JSONDecodeError, KeyError): + pass + + return {} + + def main() -> None: """Run the auto-commit service.""" - settings = AutoCommitSettings(service_name="auto-commit-service") + # Load daemon-specific config from registry + cwd = Path.cwd() + daemon_config = load_daemon_config(cwd) + + # Override ignore_repos from config file if present + ignore_repos_override = {} + if "ignore_repos" in daemon_config and daemon_config["ignore_repos"]: + ignore_repos_override["ignore_repos"] = daemon_config["ignore_repos"] + + settings = AutoCommitSettings( + service_name="auto-commit-service", + **ignore_repos_override + ) # Setup file logging setup_logging(settings)