#!/bin/bash
# Kolory dla logów
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'

echo -e "${BLUE}🚀 Rozpoczynam uniwersalną konfigurację (Debian/Ubuntu/Rocky)...${NC}"

# 1. Wykrywanie menedżera pakietów i instalacja
if [ -f /etc/debian_version ]; then
    echo -e "${GREEN}📦 Wykryto system oparty na Debianie (Ubuntu/Debian)${NC}"
    sudo apt update && sudo apt install -y zsh git curl wget neovim gcc g++ make
elif [ -f /etc/redhat-release ]; then
    echo -e "${GREEN}📦 Wykryto system oparty na RHEL (Rocky/CentOS/Fedora)${NC}"
    sudo dnf install -y epel-release
    sudo dnf install -y zsh git curl wget neovim gcc-c++ make util-linux-user
else
    echo -e "${RED}❌ Nieobsługiwany system. Spróbuj zainstalować paczki ręcznie.${NC}"
    exit 1
fi

# 5. Konfiguracja Neovim (Lazy.nvim + Nvim-Tree)
echo -e "${GREEN}🌙 Konfiguruję Neovim...${NC}"
mkdir -p ~/.config/nvim

cat <<'EOF' > ~/.config/nvim/init.lua
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(lazypath)

-- Opcje edytora
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.termguicolors = true
vim.g.mapleader = " "

-- Mysz wyłączona - terminal (Termius) przejmuje zaznaczanie
-- Zaznacz myszką → Cmd+C działa tak samo jak w Vimie
vim.opt.mouse = ''

-- Pluginy
require("lazy").setup({
  { "folke/tokyonight.nvim", lazy = false, priority = 1000 },
  { "nvim-lualine/lualine.nvim" },
  { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
  { "nvim-tree/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" } },
})

-- Wygląd i aktywacja pluginów
vim.cmd[[colorscheme tokyonight]]
require('lualine').setup()
require('nvim-tree').setup()

-- ==============================================
-- SKRÓTY KLAWISZOWE
-- ==============================================

-- Otwieranie drzewa plików
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<CR>')

-- Toggle myszy - Space+m jeśli kiedyś będziesz chciał włączyć
vim.keymap.set('n', '<leader>m', function()
  if vim.opt.mouse:get() == '' then
    vim.opt.mouse = 'a'
    print('Mouse: ON (kopiuj przez Space+y)')
  else
    vim.opt.mouse = ''
    print('Mouse: OFF (kopiuj myszką + Cmd+C)')
  end
end, { desc = 'Toggle mouse' })
EOF

echo -e "${GREEN}✅ Konfiguracja zakończona!${NC}"
echo -e "${BLUE}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "  Kopiowanie w Neovim (jak w Vimie):"
echo "  Zaznacz myszką → Cmd+C → gotowe"
echo ""
echo "  Space+m  → toggle myszy (jeśli potrzebne)"
echo "  Space+e  → drzewo plików"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "${NC}"
