#!/bin/bash

archive="home.tar"
archive_clc="clc-linux.tar"
md5home="e9c79bb5cec7d085ef35f5287bd39b63  home.tar"
md5clc="824a4b3bc7f88de3fe1c77ad6b56710b  clc-linux.tar"
#version_requise="8 (jessie)"
#archi_requise="i686"
primtux="01-mini
02-super
03-maxi"

# Redirection d'erreurs vers un fichier log
fichierlog="/var/log/ptx2-3-vers-4.log"
if ! [ -e "$fichierlog" ]
	then > "$fichierlog"
fi
date >> "$fichierlog"
exec 2>>"$fichierlog"

# Suppression de la référence au dépôt Primtux2-Lubuntu
sed -i '/PrimTux-Lubuntu/d' /etc/apt/sources.list.d/primtux.list

apt-get update && apt-get dist-upgrade

# Vérifie l'OS
archi=$(uname -m)
version=$(cat /etc/os-release | grep ^VERSION= | cut -d"\"" -f2)
id=$(cat /etc/os-release | grep ^ID= | cut -d"=" -f2)
sessions=$(grep -E "01-mini|02-super|03-maxi" /etc/passwd | cut -d":" -f1)

#if [ "$archi" != "$archi_requise" ] || [ "$version" != "$version_requise" ] || [ "$sessions" != "$primtux" ]
if [ "$sessions" != "$primtux" ]
   then  echo "La version de votre système d'exploitation ne
correspond pas à celles susceptibles de recevoir
cette mise à jour."
        exit 0
fi

# vérifie la présence et l'intégrité des archives
if ! [ -e "$archive" ] || ! [ -e "$archive_clc" ]
   then echo "Le script va s'interrompre car il manque une archive
des fichiers nécessaires à la mise à jour."
        exit 0
fi

md5a=$(md5sum "$archive")
md5b=$(md5sum "$archive_clc")
if [ "$md5a" != "$md5home" ] || [ "$md5b" != "$md5clc" ]
   then  echo "Une archive de fichiers est corrompue.
Vous devrez peut-être refaire le téléchargement."
        exit 0
fi

# Demande confirmation de la mise à jour
echo "Votre version de PrimTux va être mise à jour pour
bénéficier de l'apparence de la nouvelle PrimTux4.
Confirmez-vous l'opération ? (O/N défaut N)"
read confirmation

if [ "$confirmation" != "O" ] && [ "$confirmation" != "o" ]
   then exit 0
fi

# Nettoyage des fichiers de configuration obsolètes
rm /home/administrateur/.config/xfce4/panel/launcher-8/15250977438.desktop
rm /home/03-maxi/.config/xfce4/panel/launcher-15/14502846451.desktop
rm /home/02-super/.config/xfce4/panel/launcher-15/14502846451.desktop
rm -rf /home/01-mini/.local/share/applications/*
rm -rf /home/02-super/.local/share/applications/*
rm -rf /home/03-maxi/.local/share/applications/*
rm -rf /home/administrateur/.local/share/applications/*

# Conversion des fichiers de configuration des handymenus
python handymenuMigration.py

# Installation des fichiers de la nouvelle configuration
tar xvf "$archive" -C "/"
tar xvf "$archive_clc" -C "/home/02-super"
tar xvf "$archive_clc" -C "/home/03-maxi"
tar xvf "$archive_clc" -C "/home/administrateur"

# Harmonisation des paquets
sudo apt-get remove -y --purge handymenu-primtux2 handymenu-mini-primtux2 handymenu-maxi-primtux2 handymenu-super-primtux2 qalculate-gtk
apt-get install -y handymenu thunderbird thunderbird-l10n-fr gnome-calculator geany mothsart-wallpapers-primtux gspeech xfce4-notifyd

# Rétablissement des droits
chown -R 01-mini:01-mini /home/01-mini
chown -R 02-super:02-super /home/02-super
chown -R 03-maxi:03-maxi /home/03-maxi
chown -R administrateur:administrateur /home/01-mini/.config/lxpanel
chown -R administrateur:administrateur /home/01-mini/.config/xfce4
chown -R administrateur:administrateur /home/02-super/.config/lxpanel
chown -R administrateur:administrateur /home/02-super/.config/xfce4
chown -R administrateur:administrateur /home/03-maxi/.config/lxpanel
chown -R administrateur:administrateur /home/03-maxi/.config/xfce4
chown -R administrateur:administrateur /home/01-mini/.config/libfm
chown -R administrateur:administrateur /home/02-super/.config/libfm
chown -R administrateur:administrateur /home/03-maxi/.config/libfm
chown -R administrateur:administrateur /home/01-mini/.fluxbox/startup
chown -R administrateur:administrateur /home/02-super/.fluxbox/startup
chown -R administrateur:administrateur /home/03-maxi/.fluxbox/startup
chown administrateur:administrateur /home/01-mini/.config/rox.sourceforge.net/ROX-Filer/Options
chown administrateur:administrateur /home/02-super/.config/rox.sourceforge.net/ROX-Filer/Options
chown administrateur:administrateur /home/03-maxi/.config/rox.sourceforge.net/ROX-Filer/Options
chown administrateur:administrateur /home/01-mini/.config/rox.sourceforge.net/ROX-Filer/globicons
chown administrateur:administrateur /home/02-super/.config/rox.sourceforge.net/ROX-Filer/globicons
chown administrateur:administrateur /home/03-maxi/.config/rox.sourceforge.net/ROX-Filer/globicons
chown administrateur:administrateur /home/01-mini/.config/rox.sourceforge.net/ROX-Filer/menus2
chown administrateur:administrateur /home/02-super/.config/rox.sourceforge.net/ROX-Filer/menus2
chown administrateur:administrateur /home/03-maxi/.config/rox.sourceforge.net/ROX-Filer/menus2
chown administrateur:administrateur /home/01-mini/.config/rox.sourceforge.net/ROX-Filer/panels
chown administrateur:administrateur /home/02-super/.config/rox.sourceforge.net/ROX-Filer/panels
chown administrateur:administrateur /home/03-maxi/.config/rox.sourceforge.net/ROX-Filer/panels
chmod -R 777 /home/02-super/abuledu-primtux/abuledu-aller
chmod -R 777 /home/03-maxi/abuledu-primtux/abuledu-aller

# Indication de version PrimTux
if ! [ -e "/etc/primtux_version" ]
   then > /etc/primtux_version
      if [ "$version" = "8 (jessie)" ]
         then case "$id" in
                  debian) if [ "$archi" = "i686" ]
                             then echo "Migration PrimTux2 vers PrimTux4 Debian8 i686" > /etc/primtux_version
                                  else if [ "$archi" = "x86_64" ]
                                          then echo "Migration PrimTux2 vers PrimTux4 Debian8 amd64" > /etc/primtux_version
                                       fi
                          fi
                          ;;
                  raspbian) echo "Migration PrimTux2 RPi vers PrimTux4 Raspbian8" > /etc/primtux_version;;
              esac
         else if [ "$version" = "9 (stretch)" ]
                 then case "$id" in
                         debian) if [ "$archi" = "i686" ]
                                    then echo "Migration PrimTux3 vers PrimTux4 Debian9 i686 DG" > /etc/primtux_version
                                    else if [ "$archi" = "x86_64" ]
                                          then echo "Migration PrimTux3 vers PrimTux4 Debian9 amd64 DG" > /etc/primtux_version
                                         fi
                                 fi
                                 ;;
                         raspbian) echo "Migration PrimTux3 RPi vers PrimTux4 Raspbian9 DG" > /etc/primtux_version;;
                      esac
              fi
      fi
fi

apt-get update && apt-get dist-upgrade

exit 0