#!/bin/bash
# SSH Agent initialization for ansible automation

SSH_ENV="$HOME/.ssh/agent-env"
ANSIBLE_KEY="/opt/ansible/secrets/ssh/ansible"

function start_agent {
    echo "Initializing new SSH agent..."
    ssh-agent -s | sed 's/^echo/#echo/' > "${SSH_ENV}"
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    
    # Add ansible key
    if [ -f "$ANSIBLE_KEY" ]; then
        cat > /tmp/ansible-askpass.sh << 'ASKPASS'
#!/bin/bash
echo "PenguinsJuggleFlamingPineapples42"
ASKPASS
        chmod +x /tmp/ansible-askpass.sh
        SSH_ASKPASS=/tmp/ansible-askpass.sh DISPLAY=:0 setsid -w ssh-add "$ANSIBLE_KEY" < /dev/null 2>/dev/null
        rm -f /tmp/ansible-askpass.sh
    fi
}

# Source SSH agent settings if exists
if [ -f "${SSH_ENV}" ]; then
    . "${SSH_ENV}" > /dev/null
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent
    }
else
    start_agent
fi

# Ensure ansible key is loaded
if ! ssh-add -l 2>/dev/null | grep -q "ansible@mymx.me"; then
    if [ -f "$ANSIBLE_KEY" ]; then
        cat > /tmp/ansible-askpass.sh << 'ASKPASS'
#!/bin/bash
echo "PenguinsJuggleFlamingPineapples42"
ASKPASS
        chmod +x /tmp/ansible-askpass.sh
        SSH_ASKPASS=/tmp/ansible-askpass.sh DISPLAY=:0 setsid -w ssh-add "$ANSIBLE_KEY" < /dev/null 2>/dev/null
        rm -f /tmp/ansible-askpass.sh
    fi
fi
