def write_env_file()

in yourbench/main.py [0:0]


def write_env_file(api_keys: dict[str, str]) -> None:
    """Write API keys to .env file if they don't exist."""
    env_path = Path(".env")
    existing_vars = {}

    # Read existing .env if it exists
    try:
        if env_path.exists():
            with open(env_path, "r") as f:
                for line in f:
                    line = line.strip()
                    if line and not line.startswith("#") and "=" in line:
                        key, value = line.split("=", 1)
                        existing_vars[key.strip()] = value.strip()
    except (OSError, PermissionError) as e:
        logger.warning(f"Could not read .env file: {e}")
        return

    # Add new keys if they don't exist
    new_keys = []
    for var_name, example_value in api_keys.items():
        if var_name not in existing_vars:
            new_keys.append((var_name, example_value))

    if new_keys:
        try:
            with open(env_path, "a") as f:
                if existing_vars:  # Add newline if file has content
                    f.write("\n")
                f.write("# API Keys added by YourBench\n")
                for var, val in new_keys:
                    f.write(f"{var}={val}\n")
            console.print(f"[green]✓[/green] Added {len(new_keys)} API key(s) to .env file")
            console.print("[yellow]Remember to update .env with your actual API keys![/yellow]")
        except (OSError, PermissionError) as e:
            logger.error(f"Could not write to .env file: {e}")
            console.print("[red]Warning: Could not create/update .env file. Add these manually:[/red]")
            for var, val in new_keys:
                console.print(f"  {var}={val}")