#!/usr/bin/env bash

set -e

echo "Определение операционной системы..."

if [ -f /etc/os-release ]; then
    source /etc/os-release
    OS=$ID
else
    echo "Не удалось определить дистрибутив."
    exit 1
fi

echo "Дистрибутив: $OS"

echo "Удаляем старые версии Node.js и npm..."
if command -v node >/dev/null 2>&1 || command -v npm >/dev/null 2>&1; then
    sudo rm -f /usr/bin/node /usr/bin/npm
    sudo yum remove -y nodejs npm 2>/dev/null || true
    sudo dnf remove -y nodejs npm 2>/dev/null || true
    sudo apt remove -y nodejs npm 2>/dev/null || true
fi

echo "Установка Node.js LTS (22.x)..."

case "$OS" in
    ubuntu|debian)
        sudo apt update -y
        curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
        sudo apt install -y nodejs
        ;;
    centos|almalinux|rocky|rhel)
        curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -
        sudo dnf install -y nodejs || sudo yum install -y nodejs
        ;;
    *)
        echo "Ваш дистрибутив ($OS) не поддерживается этим скриптом."
        exit 1
        ;;
esac

echo "Node.js установлен:"
node -v
npm -v

echo "Устанавливаем PM2..."
sudo npm install -g pm2

echo "PM2 установлен:"
pm2 -v

echo "Готово! Node.js + npm + PM2 успешно установлены."
