#! /bin/bash
# 
# rpm-man - Permette di scegliere facilmente pacchetti rpm da eliminare
#
# Antonio, noise81@supereva.it

which bc 2> /dev/null
if [ $? -ne 0 ]; then 
  echo -e "\n ERRORE: E' necessario il programma bc per eseguire lo script.\n"
  exit 1
fi

LIM="1048576"; # dimensione in Bytes sotto la quale ignorare i pacchetti

echo "Sto' generando la lista  dei pacchetti installati (rpm -qa) ..."
PKGLIST=`rpm -qa`

for pkg in $PKGLIST; do

  DIM="`rpm-dim $pkg --script`"; # dimensione del pacchetto

  # Se la dimensione e' inferiore a $LIM passo al pacchetto successivo
  # NOTA: potrebbe fare attendere un po' l'utente se molti pacchetti sono scartati
  if [ $LIM -gt $DIM ]; then continue; fi 

  # Calcolo la dimensione in MByte
  MByte=$(echo -e "scale=3\n$DIM/1048576\nquit" | bc)
  echo -e "\nPacchetto: $pkg  occupa $MByte MB" 

  # Selezione interattiva del comando
  OPTIONS="Informazioni Dimensione Elimina Prossimo Esci"
  select opt in $OPTIONS; do
     if [ "$opt" = "Esci" ]; then
         echo -e "\n  Esecuzione di $0 terminata.\n"
         exit 0
     elif [ "$opt" = "Informazioni" ]; then
        rpm -qi $pkg
     elif [ "$opt" = "Dimensione" ]; then
        echo -e "Il pacchetto $pkg  occupa $MByte MB"
     elif [ "$opt" = "Prossimo" ]; then
        break;     
     elif [ "$opt" = "Elimina" ]; then
        rpm -e $pkg && echo Pacchetto $pkg eliminato.
	break;
     fi
        echo -e "\nOpzioni possibili:"
        echo -e "1 : Visualizza delle informazioni sul pacchetto $pkg"
        echo -e "2 : Dimensione del pacchetto su disco"
        echo -e "3 : Elimina pacchetto (esegue rpm -e $pkg)"
        echo -e "4 : Passa al prossimo pacchetto"
        echo -e "5 : Esce\n"
     
  done
done


