#!/bin/bash
############################################################################################
# Taltan - http://taltan.free.fr - ola.taltan@laposte.net                                  #
# Script peertv033-installer-2.0.sh                                                        #
# Inspiré du script peertv_installer.pl de klox - http://www.peertv.fr                     #
# Script d'installation de PeerTV pour Ubuntu Dapper et Edgy                               #
# 26/11/06 - v1.0 - Création                                                               #
# 02/12/06 - v1.1 - Rajout création du lanceur PeerTV sur le bureau                        #
# 03/12/06 - v2.0 - Réécriture par dloic - loic.dardantATgmailcom - http://d.gardon.free.fr# 
#                   - simplification du script, conditionnels SI imbriqués                 #                
#                   - téléchargement directement dans le PATH_INSTALL                      #
#                   - redemande saisie du répertoire absolue (boucle TANT QUE)             #
#                   - icône dans le menu applications/son et vidéo pour gnome              #
#                   - suppression de l'archive après décompression                         #
#                   - ajouts de tests sur les commandes pouvant rapporter des erreurs      #
#                   - nettoyage si plantage du script (suppression du dossier, archive...) #
#                   - utilisation de la variable SUDO_USER                                 #
#                   - non déplacement du script dans /usr/bin. Cela permet de désintaller  #
#                     uniquement en supprimant le répertoire                               #
#                   - liste des paquets à installer est une variable globale               #
############################################################################################   

PEERTVINSTALL_VERSION="peertv_installer-0.2"
PEERTV_VERSION="PeerTV-033-Linux"
PEERTV_TGZ="$PEERTV_VERSION-061119.tar.gz"
PEERTV_ICON="http://taltan.free.fr/images/screenshot/peertv.png"
PAQUETS=" perl mplayer peercast perl-tk libxml-simple-perl libxml-libxml-common-perl libxml-namespacesupport-perl libxml-sax-perl libwww-perl w32codecs"

echo "#######################################################################"
echo "             Script d'installation de $PEERTV_VERSION"
echo "#######################################################################"

#vérification de l'utilisateur qui lance le script
qui=`whoami` 

#si l'utilisateur n'est pas root
if [ "$qui" != "root" ] || [ -z $SUDO_USER ]
 then 
	echo "ERREUR : Veuillez éxécuter ce script avec les privilèges administrateur (sudo $PEERTVINSTALL_VERSION)"
	exit 1
#si l'utilisateur est root
else 
	#demande dossier
	echo -n "Dans quel dossier souhaitez-vous installer PeerTV ? [/opt] : " 
	read PATH_INSTALL
	#par défaut /opt
	if [ -z "$PATH_INSTALL" ]
	 then 
		PATH_INSTALL="/opt"
 	else
		#si le chemin non absolu
		while [ "`echo $PATH_INSTALL | cut -c1`" != "/" ] 
		  do
			echo -n "ERREUR : Veuillez saisir un chemin absolu : "
			read PATH_INSTALL
		done

		#si le dossier n'existe pas
		if [ ! -d "$PATH_INSTALL" ]
		  then
			echo -n "Le dossier $PATH_INSTALL n'existe pas, souhaitez-vous le créer ? (o/n) [o] : "
			read REPONSE
			#création du dossier
			if [ "$REPONSE" = "o" ] || [ -z "$REPONSE" ]
			  then 
			 	mkdir -p $PATH_INSTALL
			else
				echo "ERREUR : Vous n'avez pas souhaitez créer le dossier, installation impossible"
				exit 1
			fi
		fi		
	fi
fi

#TESTER SI DEPOTS ACTIVES
#grep "^#.*multiverse" /etc/apt/sources.list
#grep "^#.*plf-free" /etc/apt/sources.list

#début de l'installation 
echo -n "Avez-vous activé les dépots multiverses et PLF ? [o] : "
read REPONSE
if [ "$REPONSE" != "o" ] && [  ! -z "$REPONSE" ]
  then
	echo "Erreur : Veuillez activer ces dépots (http://doc.ubuntu-fr.org/)"
	exit 1
fi

#installation des paquets
echo -n "Installation des paquets nécessaires : $PAQUETS  veuillez patienter  "
apt-get -y install $PAQUETS > /dev/null
if [ $? != 0 ]
  then 
	echo "ERREUR : échec de l'installation des paquets"
	exit 1
fi
echo "........... OK"

#téléchargement de l'archive PeerTV
cd $PATH_INSTALL
echo -n "Téléchargement de PeerTV"
wget -q "http://www.kloxigrues.com/installer/$PEERTV_TGZ"
if [ $? != 0 ]
  then 
	echo "ERREUR : échec du téléchargement de l'archive $PEERTV_TGZ"
	exit 1
fi
echo "........... OK"

#décompression de l'archive
echo -n "Décompression de l'archive $PEERTV_TGZ"
tar xzf $PEERTV_TGZ 2>&1 > /dev/null
if [ $? != 0 ]
  then 
	echo "ERREUR : échec de la décompression"
	rm $PEERTV_TGZ
	exit 1
fi
#suppression de l'archive
rm $PEERTV_TGZ
echo "........... OK"

#téléchargement de l'icone pour le lanceur Gnome dans /tmp/$PEERTV_VERSION
echo -n "Téléchargement de l'icone PeerTV sur http://taltan.free.fr"
wget -q $PEERTV_ICON  -O $PATH_INSTALL/$PEERTV_VERSION/peertv.png
if [ $? != 0 ]
  then 
	echo "ERREUR : échec du téléchargement de l'icone"
	rm -R $PEERTV_VERSION
	exit 1
fi
echo "........... OK"

#création du script pour lancer PeerTV
echo "#!/bin/bash" > $PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh
echo "cd $PATH_INSTALL/$PEERTV_VERSION" >> $PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh
echo "./PeerTV.pl" >> $PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh

#rend le script exécutable, pour cet utilisateur, utilisation de la variable SUDO_USER
chown $SUDO_USER $PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh
chmod +x $PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh

#création du lanceur PeerTV, pour tous les utilisateurs
echo -n "Création du lanceur de PeerTV dans le menu Applications/Son et Vidéo"
cd
cd /home/$SUDO_USER/.local/share/applications
echo "[Desktop Entry]" > peertv.desktop
echo "Encoding=UTF-8" >> peertv.desktop
echo "Name=PeerTV" >> peertv.desktop
echo "GenericName=PeerTV" >> peertv.desktop
echo "Comment=Visionnez la télé sur le web" >> peertv.desktop
echo "Exec=$PATH_INSTALL/$PEERTV_VERSION/peertv-run.sh" >> peertv.desktop
echo "Terminal=false" >> peertv.desktop
echo "Type=Application" >> peertv.desktop
echo "Icon=$PATH_INSTALL/$PEERTV_VERSION/peertv.png" >> peertv.desktop
echo "Categories=Application;AudioVideo;" >> peertv.desktop
chown $SUDO_USER peertv.desktop
echo "........... OK"

#fin du script
echo "#######################################################################"
echo "                        Installation terminée"
echo "     Pour lancer PeerTV,  menu Applications/Son et Vidéo/PeerTV ;)"
echo "#######################################################################"

