"""Static-env passthrough: copy every declared key from default.env with caller-env-wins (setdefault) semantics. Comments come from ``ctx.static_comments`` (parsed from default.env).""" from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from utils.env.builder import BuildContext, EnvBuilder STATIC_KEYS = ( "INFINITO_SRC_DIR", "INFINITO_VENV_DIR", "INFINITO_ANSIBLE_COLLECTIONS_SOURCE", "INFINITO_BIND_IP", "INFINITO_BUILD", "INFINITO_SUBNET", "INFINITO_GATEWAY", "INFINITO_DISTRO", "INFINITO_DNS_DOMAIN", "INFINITO_DNS_HOSTS_FILE", "INFINITO_DNS_IP", "INFINITO_DOMAIN", "INFINITO_TOR_SOCKS_PORT", "INFINITO_CONTAINER", "INFINITO_CONTAINER_CA_ENABLED", "INFINITO_RUNNING_ON_ACT", "INFINITO_RUNNING_ON_GITHUB", "INFINITO_IS_WSL2", "INFINITO_PULL_POLICY", "INFINITO_MEM_LIMIT", "INFINITO_MEMSWAP_LIMIT", "INFINITO_CPUS", "INFINITO_WAIT_HEALTH_TIMEOUT_S", "INFINITO_DOCKER_VOLUME", "INFINITO_DOCKER_MOUNT", "INFINITO_IP4", "INFINITO_IP6", "INFINITO_IP_RANGE", "INFINITO_PARENT_IMAGE_OWNER", "INFINITO_PARENT_IMAGE_TAG", "INFINITO_PARENT_IMAGE_VARIANT", "INFINITO_KEEP_SWARM_NODES", "INFINITO_SWARM_TEST_LABEL", "INFINITO_SWARM_MESHES", "INFINITO_SWARM_VPN", "INFINITO_VPN", "INFINITO_SWARM_MGR_NAME", "INFINITO_SWARM_STEP_TIMEOUT_MINUTES", "INFINITO_SWARM_TEARDOWN_RESERVE_SECONDS", "INFINITO_SWARM_WRK1_NAME", "INFINITO_SWARM_WRK2_NAME", "INFINITO_SWARM_NFS_NAME", "INFINITO_SWARM_NODE_PIDS_LIMIT", "INFINITO_SWARM_BACKUP_NAME", "INFINITO_SWARM_BACKUP_KEY", "INFINITO_SWARM_BACKUP_IP", "INFINITO_SWARM_LAB_NET_NAME", "INFINITO_SWARM_LAB_SUBNET", "INFINITO_SWARM_MGR_IP", "INFINITO_SWARM_NFS_IP", "INFINITO_SWARM_NFS_MINOR_VERSIONS", "INFINITO_SWARM_WRK1_IP", "INFINITO_SWARM_WRK2_IP", "INFINITO_NODE_SRC_DIR", "INFINITO_DOCKER_CLI_INSTALL_SCRIPT", "INFINITO_DOCKER_FILESYSTEM", "INFINITO_DOCKER_FILESYSTEM_ALLOWED", "INFINITO_DOCKER_FILESYSTEM_ENFORCED", "INFINITO_DOCKER_FILESYSTEM_PICK", "INFINITO_DOCKER_FILESYSTEM_REQUIRED", "INFINITO_PACKAGE_INSTALL_SCRIPT", "INFINITO_PYTHON_INSTALL_SCRIPT", "INFINITO_FILESYSTEM_INSTALL_SCRIPT", "INFINITO_INTERPRETERS_INSTALL_SCRIPT", "INFINITO_ALIAS_REPOSITORY", "INFINITO_APT_UBUNTU_MIRRORS", "INFINITO_FORK_REPOSITORY_NAME", "INFINITO_API_ANTHROPIC_KEY", "INFINITO_API_OPENAI_KEY", "INFINITO_API_OPENROUTER_KEY", "INFINITO_PLAYWRIGHT_KEEP", "INFINITO_INVENTORY_EXTRA_VARS", "INFINITO_PUBLISH_PORTS", "INFINITO_SKILLS_REPOSITORY", "INFINITO_SKIP_COMPILE", "INFINITO_MAIL_PRODUCTION_HOST", "INFINITO_MAIL_PRODUCTION_RESOLVER", "INFINITO_TEST_PATTERN", "INFINITO_TEST_RUNNER", "INFINITO_WORKSPACE_TRACKS", "INFINITO_LINT_RUNNER", "INFINITO_APP_DISCOVERY_RUNNER", "INFINITO_DEPLOY_MODE", "INFINITO_DISCOVERY_SEED", "INFINITO_DISCOVERY_SORT", "INFINITO_LIFECYCLES", "INFINITO_MODES", "INFINITO_REQUIRED_STORAGE", "INFINITO_BUILDKIT_ENABLED", "INFINITO_DEBUG", "INFINITO_WHITELIST", "INFINITO_BLACKLIST", "INFINITO_PRIORITY", "INFINITO_CI_CHUNK", "INFINITO_CI_CHUNK_SIZE", "INFINITO_CI_CONCURRENCY", "INFINITO_CI_DISTRO_BUDGET_SECONDS", "INFINITO_CI_JOB_LIMIT", "INFINITO_CI_MAX_CHUNKS", "INFINITO_CI_OFFSET", "INFINITO_CI_QUEUE_HOURS", "INFINITO_CI_SWEEP", "INFINITO_LIMIT_HOST", "INFINITO_RUN_FLAGS", "INFINITO_WORKER_ENABLED", "INFINITO_INVENTORY_VARS_FILE", "INFINITO_PRESERVE_DOCKER_CACHE", "INFINITO_RECOVER_DRILL", "INFINITO_REPO_ROOT", "INFINITO_RESCUE_DIAGNOSTICS_BASE", "INFINITO_RUNNER_PREFIX", "INFINITO_TIMEOUT_MULTIPLIER", "INFINITO_TOR", "INFINITO_INSTANCE", "INFINITO_GIT_COMMON_DIR", "INFINITO_CACHE_NETWORK", "INFINITO_CACHE_STACK", "INFINITO_GHCR_MIRROR", "INFINITO_CACHE_REGISTRY_HOST_PATH", "INFINITO_CACHE_REGISTRY_CA_HOST_PATH", "INFINITO_CACHE_REGISTRY_IP", "INFINITO_CACHE_PACKAGE_HOST_PATH", "INFINITO_CACHE_PACKAGE_PORT", "INFINITO_CACHE_PACKAGE_FRONTEND_CA_DIR", "INFINITO_CACHE_PACKAGE_FRONTEND_CA_FILE", "INFINITO_CACHE_PACKAGE_FRONTEND_CERTS_DIR", "INFINITO_CACHE_PACKAGE_FRONTEND_IP", "INFINITO_CACHE_PACKAGE_FRONTEND_INIT_IMAGE", "INFINITO_CACHE_PACKAGE_IP", "INFINITO_CACHE_PACKAGE_MAX_AGE_MIN", "INFINITO_CACHE_PACKAGE_METADATA_MAX_AGE_MIN", "INFINITO_CACHE_PACKAGE_NPMRC", "INFINITO_CACHE_PACKAGE_PIP_CONF", "INFINITO_CACHE_REGISTRY_PROXY_CONF", "INFINITO_IMAGE_TAG", "INFINITO_VARS_PAYLOAD", "INFINITO_APP_VARIANTS", ) def apply(eb: EnvBuilder, ctx: BuildContext) -> None: for key in STATIC_KEYS: if key in ctx.static: eb.setdefault( key, ctx.static[key], comment=ctx.static_comments.get(key, "") )