""" Environment configuration for HM QC system. Set environment variable HM_QC_ENV to control which environment to use: - export HM_QC_ENV=dev # Development environment - export HM_QC_ENV=production # Production environment (default) Development uses relative paths from the repository root. Production uses absolute paths at /opt/QC. """ import os # Detect environment from environment variable (defaults to production) ENVIRONMENT = os.getenv('HM_QC_ENV', 'production').lower() # Get the repository root directory (where this config.py file is located) REPO_ROOT = os.path.dirname(os.path.abspath(__file__)) # Environment-specific path configuration if ENVIRONMENT == 'dev': # Development environment - use relative paths from repo BASE_DIR = REPO_ROOT PROFILES_DIR = os.path.join(BASE_DIR, 'profiles') CHECKS_DIR = os.path.join(BASE_DIR, 'checks') WORKING_DIR = os.path.join(BASE_DIR, 'tmp', 'HM_working') REPORTS_DIR = os.path.join(BASE_DIR, 'tmp', 'reports') SUPPORTING_DIR = os.path.join(BASE_DIR, 'supporting') else: # Production environment - use absolute paths BASE_DIR = '/opt/hm_qc' PROFILES_DIR = '/opt/hm_qc/profiles' CHECKS_DIR = '/opt/hm_qc/checks' WORKING_DIR = '/tmp/HM_working' REPORTS_DIR = '/opt/hm_qc/reports' SUPPORTING_DIR = '/opt/hm_qc/supporting' # Profile paths PDF_PROFILE_PATH = os.path.join(PROFILES_DIR, 'HM.json') IMAGE_PROFILE_PATH = os.path.join(PROFILES_DIR, 'HM_image.json') # Ensure working and reports directories exist in dev mode if ENVIRONMENT == 'dev': os.makedirs(WORKING_DIR, exist_ok=True) os.makedirs(REPORTS_DIR, exist_ok=True) def get_config(): """ Returns a dictionary with all configuration values. Useful for debugging and logging. """ return { 'environment': ENVIRONMENT, 'base_dir': BASE_DIR, 'profiles_dir': PROFILES_DIR, 'checks_dir': CHECKS_DIR, 'working_dir': WORKING_DIR, 'reports_dir': REPORTS_DIR, 'supporting_dir': SUPPORTING_DIR, 'pdf_profile_path': PDF_PROFILE_PATH, 'image_profile_path': IMAGE_PROFILE_PATH, } def print_config(): """ Prints the current configuration. Useful for debugging environment setup. """ config = get_config() print(f"\n{'='*60}") print(f"HM QC Environment Configuration") print(f"{'='*60}") for key, value in config.items(): print(f"{key:20s}: {value}") print(f"{'='*60}\n")