generate-ssh-key type:
    @mkdir -p tests/assets/ssh_keys
    @rm tests/assets/ssh_keys/id_{{type}} || true
    @rm tests/assets/ssh_keys/id_{{type}}.pub || true

    ssh-keygen -q -t {{type}} -f tests/assets/ssh_keys/id_{{type}} -N "" -C "Test SSH Key"

generate-ssh-certificate:
    @mkdir -p tests/assets/ssh_keys
    @rm tests/assets/ssh_keys/ca || true
    @rm tests/assets/ssh_keys/ca.pub || true

    ssh-keygen -q -t ed25519 -f tests/assets/ssh_keys/ca -N "" -C "Test SSH CA"

    ssh-keygen -s tests/assets/ssh_keys/ca -I ssh_test-cert -n test -V always:forever tests/assets/ssh_keys/id_ed25519.pub

generate-ssh-keys: (generate-ssh-key "ed25519") (generate-ssh-key "rsa") (generate-ssh-key "ecdsa") generate-ssh-certificate

check:
    cargo fmt --check
    cargo check --all-targets --all-features
    cargo clippy
    cargo nextest run --all-features
    cargo test --doc

cleanup-images:
    docker container prune --force
    docker image ls --format "{{{{.Repository}}:{{{{.Tag}}" \
        | grep test-image \
        | xargs --no-run-if-empty -n1 docker rmi
