#!/bin/bash
if [ -e /usr/local/sbin/nettoyage-noyau ];then rm /usr/local/sbin/nettoyage-noyau;fi

echo "nettoyage des résidus de conf"
sudo apt-get -y purge $(dpkg -l|grep '^rc '|awk '{print $2}')
echo "nettoyage des autoremove"
sudo apt-get -y autoremove --purge

if ( lsb_release -i|grep Ubuntu ) then
 echo "Ubuntu détectée"
#numéros des versions installées
#present=(`dpkg -l|grep linux-image|grep -v linux-image-generic|grep -v extra|grep -v linux-image-server|awk '{print $2}'|awk 'BEGIN {FS="-";} {print $4}'`)
present=(`ls /boot/vmlinuz*|awk 'BEGIN {FS="-";} {print $2"-"$3}'`)
version_present=(`ls /boot/vmlinuz*|awk 'BEGIN {FS="-";} {print $2}'`)
numero_present=(`ls /boot/vmlinuz*|awk 'BEGIN {FS="-";} {print $3}'`)

#numéro de la version en cours d'exécution
courant=(`uname -r|awk 'BEGIN {FS="-";} {print $1"-"$2}'`)
version_courant=(`uname -r|awk 'BEGIN {FS="-";} {print $1}'`)
numero_courant=(`uname -r|awk 'BEGIN {FS="-";} {print $2}'`)

echo "les noyaux présents sont " ${present[*]}
echo "le noyau courant est " $courant

for i in ${version_present[*]}
do
 echo $i
 if [ "$version_courant" = "$i" ]
 then
  echo $i " correspond à " $version_courant
 else
  echo $i " ne correspond pas à " $version_courant
  exit 2
 fi
done

for i in ${numero_present[*]}
do
 #echo $i
 if [ $i -gt $numero_courant ] 
  then
  echo "Attention, il semble qu'une version supérieure à celle utilisée soit installée, il faut peut-être rebooté "
  exit 3
 fi
done

#nettoyage des noyaux
sudo apt-get -y purge `dpkg -l|grep linux-image|grep -v linux-image-generic|grep -v linux-image-server|grep -v \`uname -r\`|awk '{print $2}'`

#nettoyage des headers
sudo apt-get -y purge `dpkg -l|grep linux-headers|grep -v linux-headers-generic|grep -v linux-headers-server|grep -v \`uname -r |awk 'BEGIN {FS="-";} {print $1"-"$2}' \`|awk '{print $2}'`
else
 lsb_release -i
 echo "Ce n'est pas une Ubuntu, pas de nettoyage des noyaux"
fi

echo "nettoyage des paquets orphelin - Attention aux pilotes Brother, gcompris sur bullseye"
sudo apt -y install deborphan
echo "$(deborphan)"
echo 'while [[ $(deborphan) != "" ]] ;do sudo apt purge $(deborphan);done'
echo "nettoyage des autoremove passe 2"
sudo apt-get -y autoremove --purge

snap list
flatpak list
echo "flatpak uninstall --unused"
