host := `hostname`
key_services := "github gradescope"

# Rebuild the system and switch immediately
rebuild:
    sudo nixos-rebuild switch --flake .#{{host}}

# Update flake.lock
update:
    nix flake update

# Clean up old generations and optimize store
gc:
    sudo nix-collect-garbage -d
    sudo nix-store --optimise
    sudo nixos-rebuild boot --flake .#{{host}}

# Generate Ed25519 SSH keys for each configured service
gen-keys:
    #!/usr/bin/env bash
    set -euo pipefail

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh

    for service in {{key_services}}; do
        file="$HOME/.ssh/id_$service"
        if [ -f "$file" ]; then
            echo "skipping: $file already exists"
            continue
        fi
        echo "generating: $file"
        ssh-keygen -t ed25519 -f "$file" -N "" -C "$service@$(hostname -s)"
    done

