#!/usr/bin/env bash

set -e

echo "🌀 Dell Fan Control via IPMI"

# Verificar root
if [ "$EUID" -ne 0 ]; then
  echo "❌ Executa como root"
  exit 1
fi

# Instalar ipmitool
echo "📦 A instalar ipmitool..."
apt update -y
apt install -y ipmitool

# Perguntar dados
read -p "🌐 IP do iDRAC: " IDRAC_IP
read -p "👤 Username: " IDRAC_USER
read -s -p "🔑 Password: " IDRAC_PASS
echo ""
read -p "🎚️ Fan speed (% recomendado 20-40): " FAN_SPEED

# Converter % para HEX (escala Dell)
HEX_SPEED=$(printf '0x%02x' $((FAN_SPEED * 255 / 100)))

echo "⚙️ Aplicando velocidade: $HEX_SPEED"

# Script persistente
cat <<EOF > /usr/local/bin/dell-fan-apply.sh
#!/bin/bash

IP="$IDRAC_IP"
USER="$IDRAC_USER"
PASS="$IDRAC_PASS"
SPEED="$HEX_SPEED"

# Ativar modo manual
ipmitool -I lanplus -H \$IP -U \$USER -P \$PASS raw 0x30 0x30 0x01 0x00

# Aplicar velocidade
ipmitool -I lanplus -H \$IP -U \$USER -P \$PASS raw 0x30 0x30 0x02 0xff \$SPEED
EOF

chmod +x /usr/local/bin/dell-fan-apply.sh

# Criar serviço systemd
cat <<EOF > /etc/systemd/system/dell-fan.service
[Unit]
Description=Dell Fan Control
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/dell-fan-apply.sh
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
EOF

# Ativar serviço
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable dell-fan.service
systemctl start dell-fan.service

echo ""
echo "✅ Fan control configurado com sucesso!"
echo "🔁 Vai aplicar automaticamente a cada boot"
echo ""
echo "👉 Para testar manualmente:"
echo "/usr/local/bin/dell-fan-apply.sh"