#!/bin/bash      
# paivita 10.11.2014 petteriIII

function unmountmnt { # if grep -qs '/mnt/@ /foo' /proc/mounts; then
cd / # umount ei onnistu, jos joku umountattavan kansio on valittuna 
sudo echo ""
for mountattu in $(sudo mount | grep /mnt/@  | awk '{print $3}') 
do
  if grep -qs $mountattu /proc/mounts; then sudo umount -l $mountattu; fi
done  
echo '/mnt/@ :n mountit on poistettu'
}

function Levy { echo -n $(ls -l /dev/disk/by-id | grep -m 1 '/'${Chrootosio##*/} | awk '{print $9}' | sed "s/-part*//g");}

function paivitaKaikkiOsiot () { # itseensä chroottaus onnistuu ihan kivasti joten tällätavoin voi ihan hyvin päivittää itsensä
# unmountmnt
for Chrootosio in $(sudo blkid | grep btrfs | awk '{print $1}' | sed 's/\://g'); do

  osiontyyppi=$(sudo blkid -o value -s TYPE $Chrootosio)
  sudo mount -t $osiontyyppi $Chrootosio /mnt 
  [[ -d /mnt/@ ]] && {
 sudo mount -t sysfs none /mnt/@/sys && sudo mount -t proc none /mnt/@/proc && sudo mount --bind /dev/ /mnt/@/dev &&  sudo mount --bind /dev/pts /mnt/@/dev/pts && sudo mount -o bind /etc/resolv.conf /mnt/@/etc/resolv.conf && sudo mount -o bind /dev/shm /mnt/@/dev/shm

# poistetaan turhat imaget # ei vielä valmis
  for n in $(ls /mnt/@/boot | grep config | grep -v $(ls /mnt/@/boot | grep config | sort | tail -1) | sed 's/config-//g'); do
    echo 'poistan: linux-image-'$n 
#    #sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-image-'$n # purge -> remove auto-remove
    echo 'poistan: linux-image-extra-'$n
#    #sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-image-extra-'$n # turha lause, mutta muistutuksena siitä mitä tapahtuu.
    echo 'poistan: linux-headers-'$n
#    #sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-headers-'$n
  done # Mikäli et halua poistaa imageja kommentoi koodia

  echo; echo -n '********** päivitetään: '$Chrootosio '   levyllä: '; Levy; echo '     tiedostomuoto: '$osiontyyppi; echo		
  sudo chroot /mnt/@  apt-get update 
  sudo chroot /mnt/@  apt-get -y dist-upgrade
                     }
unmountmnt
done
}

# Pääohjelma
echo ''; sudo echo 
hommaalkoi="$(date +%s)" 
paivitaKaikkiOsiot 
echo -e 'päivitetty: '$(date +"%d-%m-%y %k:%M")'\t ja päivittäminen kesti: '$(date -d@$(echo $(date +%s)-$hommaalkoi-7200 | bc) | awk '{print $3}')


  


 
