import app.container as container from app.core.audit import AuditLogger from app.core.config import Settings, validate_settings from app.factory import create_app from app.providers.cli_provider import CliSystemProvider, CommandExecutor from app.services.user_group_service import UserGroupService from app.state import AppState settings = Settings() validate_settings(settings) executor = CommandExecutor(sudo_path=settings.sudo_path, timeout_seconds=settings.command_timeout_seconds) provider = CliSystemProvider(executor=executor) service = UserGroupService( provider=provider, home_base_dir=settings.home_base_dir, link_home_dir=settings.link_home_dir or None, hidden_users=settings.hidden_user_list, hidden_groups=settings.hidden_group_list, whitelist_users=settings.whitelist_user_list, whitelist_groups=settings.whitelist_group_list, locked_users=settings.locked_user_list, user_uid_min=settings.user_uid_min, user_uid_max=settings.user_uid_max, group_gid_min=settings.group_gid_min, group_gid_max=settings.group_gid_max, ) audit = AuditLogger(log_path=settings.log_path) container.app_state = AppState(settings=settings, service=service, audit=audit) app_state = container.app_state app = create_app()