#!/bin/bash
# home-bootstraper
# Uso: ./home-bootstraper <usuario>

set -e

# Ajuda
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
    echo "Uso: $0 <usuario>"
    echo "Copia arquivos de bootstrap para a home do usuário informado"
    echo "Arquivos existentes não serão substituídos."
    echo "Exemplo: $0 marcelositr"
    exit 0
fi

USER_TARGET="$1"
if [[ -z "$USER_TARGET" ]]; then
    echo "Erro: usuário não informado."
    echo "Use -h ou --help para ajuda."
    exit 1
fi

HOME_DIR=$(eval echo "~$USER_TARGET")
if [[ ! -d "$HOME_DIR" ]]; then
    echo "Erro: home do usuário $USER_TARGET não encontrada."
    exit 1
fi

SOURCE_DIR="$(dirname "$0")/bootstrap-files"
if [[ ! -d "$SOURCE_DIR" ]]; then
    echo "Erro: pasta de bootstrap '$SOURCE_DIR' não encontrada."
    exit 1
fi

echo "O script vai copiar os arquivos de $SOURCE_DIR para $HOME_DIR"
echo "Arquivos existentes serão ignorados."
read -rp "Confirmar? (s/n): " CONF
if [[ "$CONF" != [sS] ]]; then
    echo "Abortado."
    exit 0
fi

copy_recursive() {
    local src="$1"
    local dst="$2"

    for item in "$src"/* "$src"/.*; do
        [[ $(basename "$item") == "." || $(basename "$item") == ".." ]] && continue
        local target="$dst/$(basename "$item")"

        if [[ -e "$target" ]]; then
            echo "Ignorando existente: $target"
            continue
        fi

        if [[ -d "$item" ]]; then
            mkdir -p "$target"
            chmod 755 "$target"
            chown "$USER_TARGET":"$USER_TARGET" "$target"
            copy_recursive "$item" "$target"
        else
            cp -a "$item" "$target"
            chmod 644 "$target"
            chown "$USER_TARGET":"$USER_TARGET" "$target"
        fi
    done
}

copy_recursive "$SOURCE_DIR" "$HOME_DIR"

echo "Bootstrap concluído com sucesso!"
