#!/bin/bash
# Upgrade Ubuntu LTS in-place: 20.04 -> 22.04 -> 24.04
# Uso: sudo bash ubuntu-upgrade-to-24.sh [step]
#   step=22  -> solo salto a 22.04
#   step=24  -> solo salto a 24.04 (se già su 22.04)
#   (vuoto)  -> esegue il salto appropriato per VERSION_ID corrente

set -euo pipefail

if [[ "${EUID:-0}" -ne 0 ]]; then
	echo "Esegui come root: sudo bash $0" >&2
	exit 1
fi

export DEBIAN_FRONTEND=noninteractive

. /etc/os-release
STEP="${1:-auto}"

apt-get update -qq
apt-get upgrade -y
apt-get install -y update-manager-core
sed -i 's/Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades

case "${VERSION_ID}" in
	20.04)
		if [[ "$STEP" == "24" ]]; then
			echo "[ERR] Su 20.04: eseguire prima step 22" >&2
			exit 1
		fi
		echo "[INFO] Upgrade 20.04 -> 22.04..."
		do-release-upgrade -f DistUpgradeViewNonInteractive || do-release-upgrade
		;;
	22.04)
		if [[ "$STEP" == "22" ]]; then
			echo "[INFO] Già su 22.04 o superiore."
			exit 0
		fi
		echo "[INFO] Upgrade 22.04 -> 24.04..."
		do-release-upgrade -f DistUpgradeViewNonInteractive || do-release-upgrade
		;;
	24.04)
		echo "[OK] Già su Ubuntu 24.04"
		if ! grep -qr 'ondrej/php' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null; then
			add-apt-repository -y ppa:ondrej/php
			apt-get update -qq
		fi
		;;
	*)
		echo "[WARN] VERSION_ID=${VERSION_ID} — verificare manualmente."
		;;
esac

echo "[INFO] VERSION_ID attuale: $(. /etc/os-release && echo $VERSION_ID)"
