#!/bin/bash
#script de verification de mise a jour par rapport aux depots apt officiels
#eric seigne <eric.seigne@abuledu.org> janvier 2017
#GNU/GPL v3

LOCALBASE=`tempfile -s csv`
LOCALERROR=`tempfile`
echo -e "Paquet;Version locale;Version apt.abuledu.org;" >> ${LOCALERROR}

if [ -f /etc/lsb-release ]; then
    . /etc/lsb-release
else
    DISTRIB_CODENAME=lucid
fi

cd /tmp
rm -f "${DISTRIB_CODENAME}"
rm -f "${LOCALBASE}"

dpkg-query -W -f='${binary:Package};${Version}\n' > ${LOCALBASE}

echo -n "Téléchargement en cours du fichier de référence ..."
TIMECODE=`date +%s`
wget -q http://apt.abuledu.org/${DISTRIB_CODENAME}.csv?version=${TIMECODE} -O ${DISTRIB_CODENAME}.csv
echo " [ok]"

if [ -f "${DISTRIB_CODENAME}.csv" ]; then
    for ligne in `cat ${DISTRIB_CODENAME}.csv`
    do
	package=`echo ${ligne} | cut -d ";" -f1`
	version=`echo ${ligne} | cut -d ";" -f2`
	#on cherche maintenant en local ce paquet pour voir si c'est la meme
	versionlocale=`grep "^${package};" ${LOCALBASE} | cut -d ";" -f2`
	if [ -n "${versionlocale}" ]; then
	    if [ "${version}" != "${versionlocale}" ]; then
		echo -e "${package};${versionlocale};${version};" >> ${LOCALERROR}
	    fi
	fi
    done
else
    echo "Erreur de téléchargement, passez sur support@abuledu.org ..."
fi

if [ -s "${LOCALERROR}" ]; then
    cat ${LOCALERROR} | column -t -s ";"
fi

rm -f "${DISTRIB_CODENAME}"
rm -f "${LOCALERROR}"
rm -f "${LOCALBASE}"

echo "Script terminé, si vous n'avez pas d'erreur c'est que ce système est à jour"

