#!/usr/bin/env bash
set -euo pipefail
# POS: ssh load-keys — Load all SSH keys into the agent

source "$(dirname "$0")/../lib/common.sh" 2>/dev/null || source "$(dirname "$0")/common.sh"

usage() {
    cat <<EOF
Usage: pos ssh load-keys

Load all SSH private keys into the ssh-agent.

Requires ssh-agent.service running (socket at /run/ssh-agent/socket).
EOF
    exit 0
}

case "${1:-}" in
    -h|--help) usage ;;
esac

export SSH_AUTH_SOCK="${SSH_AUTH_SOCK:-/run/ssh-agent/socket}"

loaded=0
for key in ~/.ssh/id_*; do
    [ -f "$key" ] || continue
    case "$key" in
        *.pub|known_hosts|authorized_keys|config) continue ;;
    esac
    ssh-keygen -y -f "$key" &>/dev/null || continue
    if ssh-add "$key" 2>/dev/null; then
        loaded=$((loaded + 1))
    fi
done

if [ "$loaded" -eq 0 ]; then
    echo "No SSH keys found in ~/.ssh/"
else
    ok "Loaded $loaded key(s) into ssh-agent"
fi

ssh-add -l
