deb-mock/deb_mock/configs/__init__.py
2025-08-03 22:16:04 +00:00

47 lines
No EOL
1.5 KiB
Python

"""
Deb-Mock Core Configurations
This package provides default configuration files for various Debian-based Linux distributions,
similar to Mock's mock-core-configs package.
"""
import os
import yaml
from pathlib import Path
from typing import Dict, List, Optional
# Base directory for config files
CONFIGS_DIR = Path(__file__).parent
def get_available_configs() -> List[str]:
"""Get list of available configuration names"""
configs = []
for config_file in CONFIGS_DIR.glob("*.yaml"):
if config_file.name != "__init__.py":
configs.append(config_file.stem)
return sorted(configs)
def load_config(config_name: str) -> Dict:
"""Load a configuration by name"""
config_file = CONFIGS_DIR / f"{config_name}.yaml"
if not config_file.exists():
raise ValueError(f"Configuration '{config_name}' not found")
with open(config_file, 'r') as f:
return yaml.safe_load(f)
def list_configs() -> Dict[str, Dict]:
"""List all available configurations with their details"""
configs = {}
for config_name in get_available_configs():
try:
config = load_config(config_name)
configs[config_name] = {
'description': config.get('description', ''),
'suite': config.get('suite', ''),
'architecture': config.get('architecture', ''),
'mirror': config.get('mirror', '')
}
except Exception:
continue
return configs