#!/bin/sh
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
BLUE="\033[1;34m"
CYAN="\033[1;36m"
RED="\033[1;31m"
GREY="\033[0;90m"
NC="\033[0m" # No Color

INSTALLED_COUNT=0
INSTALLED_NAMES=""
SSH_DIR="$HOME/.ssh"
AUTH_FILE="$SSH_DIR/authorized_keys"

if [ ! -d "$SSH_DIR" ]; then
    mkdir -p "$SSH_DIR"
    chmod 700 "$SSH_DIR"
    printf "${GREY}Created directory: %s${NC}\n" "$SSH_DIR"
fi
touch "$AUTH_FILE"
chmod 600 "$AUTH_FILE"

printf "\n${BLUE}🔒 SSH KEY INSTALLER v1.1 (POSIX EDITION) ${NC}\n"
printf "${GREY}----------------------------------------${NC}\n"

while read -r key; do
    case "$key" in
        ""|\#*) continue ;;
    esac
    KEY_NAME=$(echo "$key" | awk '{print $NF}')
	if grep -qxF "$key" "$AUTH_FILE" 2>/dev/null; then
        # SKIP
        printf "  ${YELLOW}● SKIP${NC}  %-20s ${GREY}(Already exists)${NC}\n" "$KEY_NAME"
    else
        # ADD
        echo "$key" >> "$AUTH_FILE"
        printf "  ${GREEN}✔ ADD ${NC}  %-20s ${GREEN}(Installed)${NC}\n" "$KEY_NAME"

        # Uppdatera räknare och lista
        INSTALLED_COUNT=$((INSTALLED_COUNT + 1))
		if [ -z "$INSTALLED_NAMES" ]; then
            INSTALLED_NAMES="    ➤ $KEY_NAME"
        else
            INSTALLED_NAMES="$INSTALLED_NAMES\n    ➤ $KEY_NAME"
        fi
    fi
done <<EOF
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL/wz7ZRXErPZNgDpnLh21kWvydMtMqB1Ak6b7ODuitF ansible
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHRHFncK7Vzigb7dh3exRo1552QTvnzrONOlFZnJhm/jbleWWBP1faZCuX9PcshOSOsz2I6pHe016I/T3Luf89fT8Wt5h1amFWr/C+fMjjdaLDtsBpyxLxmOiX+60bFfP4HoWQQgo3a88Kuo8Aaks9QnvYSb9fM9PAsEEqHGJ7Z8ASTTs5WpW+mBZnhaI0qn+c6NHn/Q0pA6zjpGBd+2Ry8D9ApjkU9HMEP14yfILhAH0oKdvnhYobCZJ/2M7zMF6DmRWQdR9sUKur1srw10nts4yJuuhPk/MFabrAnzZJO1udvwxJ8kVrvEuI5K0WAVzQHrBUDUGCFV8h5yAAomA1 mac
EOF

printf "\n"
