feat(config): load ignore_repos from startup-config.json
- Load daemon config by matching current directory - Override ignore_repos from config file (takes precedence over env var) - Fall back to empty list if config not found Usage: Edit ~/.config/commits/startup-config.json No environment variables needed! Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
d6618679af
commit
8f3803c2a2
1 changed files with 33 additions and 1 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue