#!/bin/bash
set -e

# --- Configuration ---
SERVER_URL="https://files.felixholz.com/dotfiles"
ZSHRC_URL="$SERVER_URL/zshrc"
VIMRC_URL="$SERVER_URL/vimrc"

# --- Functions ---
backup_file() {
    local file_path="$1"
    if [ -f "$file_path" ]; then
        local timestamp=$(date +%Y%m%d_%H%M%S)
        local backup_path="${file_path}.backup.${timestamp}"
        mv "$file_path" "$backup_path"
        echo "✅ Backed up existing $file_path to $backup_path"
    fi
}

# --- Main Logic ---

echo "🚀 Starting setup..."

# 1. Install System Dependencies
if command -v apt &> /dev/null; then
    echo "📦 Detected apt (Debian/Ubuntu). Installing packages..."
    sudo apt update && sudo apt install -y zsh vim wget curl git
elif command -v dnf &> /dev/null; then
    echo "📦 Detected dnf (Fedora). Installing packages..."
    sudo dnf install -y zsh vim wget curl git
else
    echo "❌ Error: Neither apt nor dnf found."
    exit 1
fi

# 2. Zsh Setup
echo "⚙️  Configuring Zsh..."
backup_file "$HOME/.zshrc"
wget -qO "$HOME/.zshrc" "$ZSHRC_URL" && echo "✅ Downloaded .zshrc"

sudo chsh -s $(which zsh) $USER

# 3. Vim Setup
echo "⚙️  Configuring Vim..."
backup_file "$HOME/.vimrc"
wget -qO "$HOME/.vimrc" "$VIMRC_URL" && echo "✅ Downloaded .vimrc"

# 4. Install vim-plug
echo "🔌 Installing vim-plug..."
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim


# 6. Install the Plugins
echo "⬇️  Running :PlugInstall..."
vim -es -u "$HOME/.vimrc" -i NONE -c "PlugInstall" -c "qa"



echo "Setup complete!"