#!/bin/bash

# Last update 2025/12/16 by pavroo

MANAGER=`cat /tmp/sparky-mgr`
if [ "$MANAGER" = "APT" ]; then
	MANAGER="apt"
elif [ "$MANAGER" = "Aptitude" ]; then
	MANAGER="aptitude"
elif [ "$MANAGER" = "Nala" ]; then
	MANAGER="nala"
else
	MANAGER="apt"
fi

SPARKY6=`cat /etc/sparky/info | grep Tolo`
TITLETEXT="Sparky Linux Kernel Installer"
TEXT="Choose a kernel to install:"
ARCH64=`uname -r | grep "amd64" | awk '{print $1}'`
ARCHX64=`uname -r | grep "x64" | awk '{print $1}'`
if [ "$ARCH64" != "" ]; then
	ARCH="OK"
elif [ "$ARCHX64" != "" ]; then
	ARCH="OK"
else
	ARCH=""
fi

if [ -f /tmp/spt-kernel-install ]; then
	sudo rm -f /tmp/spt-kernel-install
fi
if [ -f /tmp/spt-kernel-install ]; then
	clear
	echo ""
	echo "  spt-kernel-install file is locked!"
	echo "  clean it up before launching it again!"
	echo ""
	sudo rm -f /tmp/spt-kernel-install
fi

# check unsupported archs
if [ "$ARCH" = "" ]; then
	dialog --title "$TITLETEXT" --msgbox "\nIt works with x86_64 kernels only...\nExiting now..." 20 80
	clear
	sudo /usr/lib/sparky-package-tool/kernel
	exit 0
fi

if [ "$SPARKY6" != "" ]; then
	dialog --title "$TITLETEXT" --menu "$TEXT" 20 80 30 Exit "Exit" 64 "Install the latest 64 bit Sparky kernel" 64_LTS_515 "Install the latest 64 bit Sparky kernel (5.15 LTS)" --yesno 2>/tmp/spt-kernel-install
else
	dialog --title "$TITLETEXT" --menu "$TEXT" 20 80 30 Exit "Exit" 64 "Install the latest 64 bit Sparky kernel" 64_LTS_66 "Install the latest 64 bit Sparky kernel (6.6 LTS)" 64_LTS_612 "Install the latest 64 bit Sparky kernel (6.12 LTS)" --yesno 2>/tmp/spt-kernel-install
fi

if [ "$?" != "0" ]; then
	INSTKERNEL=`cat /tmp/spt-kernel-install | head -n1`
else
	INSTKERNEL="Exit"
fi

if [ "$INSTKERNEL" = "Exit" ]; then
	clear
	dialog --title "$TITLETEXT" --msgbox "\nExiting..." 20 80
	clear
	if [ "$MANAGER" = "apt" ]; then
		spta
	elif [ "$MANAGER" = "aptitude" ]; then
		sptt
	elif [ "$MANAGER" = "nala" ]; then
		sptn
	else
		spt
	fi
fi

if [ "$INSTKERNEL" = "64" ]; then
	clear
	sudo $MANAGER install linux-image-sparky-amd64 linux-headers-sparky-amd64
	echo 'Press <ENTER> to Exit...' && read
elif [ "$INSTKERNEL" = "64_LTS_66" ]; then
	clear
	sudo $MANAGER install linux-image-sparky-lts66-amd64 linux-headers-sparky-lts66-amd64
	echo 'Press <ENTER> to Exit...' && read
elif [ "$INSTKERNEL" = "64_LTS_612" ]; then
	clear
	sudo $MANAGER install linux-image-sparky-lts612-amd64 linux-headers-sparky-lts612-amd64
	echo 'Press <ENTER> to Exit...' && read
elif [ "$INSTKERNEL" = "64_LTS_515" ]; then
	clear
	sudo $MANAGER install linux-image-sparky-lts-amd64 linux-headers-sparky-lts-amd64
	echo 'Press <ENTER> to Exit...' && read
else
	clear
	exit 0
fi

clear

if [ "$MANAGER" = "apt" ]; then
	spta
elif [ "$MANAGER" = "aptitude" ]; then
	sptt
elif [ "$MANAGER" = "nala" ]; then
	sptn
else
	spt
fi

exit 0
