#!/bin/bash # Script pour utiliser pluzz.fr - Interface graphique du script pluzz à l'aide de zenity # v0.3 (21 avril 2011) #récupération du nom du dossier où se trouve le fichier pluzz_gui pluzz_gui_dir=$(dirname $0) #choix du délai de fermeture automatique des boites de dialogues zenity en cas d'erreur delai=7 #recherche du script pluzz dans le PATH et dans le dossier de pluzz_gui et affectation de son chemin à la variable pluzz_cmd if [ $(ls $pluzz_gui_dir | grep -ixc pluzz) = 1 ] then echo "Une version de pluzz a été trouvée dans le dossier de pluzz_gui et va être utilisée." pluzz_cmd="${pluzz_gui_dir}/pluzz" elif [ "$(which pluzz)" != "" ] then echo "Une version de pluzz a été trouvée sur votre ordinateur et va être utilisée." pluzz_cmd="pluzz" else message="Aucune version de pluzz n'a été trouvée sur votre ordinateur.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 127 fi #si le script pluzz trouvé précédemment n'est pas exécutable … if [ ! -x $pluzz_cmd ] then #… alors on regarde si on en est le propriétaire … if [ $(ls -Gl $pluzz_cmd | grep -c $USER) = 1 ] then #… et on le rend exécutable chmod +x $pluzz_cmd echo "Le fichier $pluzz_cmd a été rendu exécutable." else #… ou on informe l'utilisateur de ce problème message="La version de pluzz trouvée sur votre ordinateur n'est pas exécutable et vous n'êtes pas propriétaire du fichier en question.\nLe fichier concerné est $pluzz_cmd. Rendez-le exécutable puis relancez pluzz_gui.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 5 fi fi #récupération de l'url de l'émission dans la variable url url=$(zenity --entry --text="Indiquez l'URL de la page de l'émission" --title="Saisissez l'URL") #quelques vérifications sur l'url saisi précédemment if [ "$url" = "" ] then message="Vous n'avez pas entré d'URL à la fenêtre précédente.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 2 else $pluzz_cmd url $url 2> /dev/null 1> /dev/null test_url=$? if [ $test_url = 3 ] then message="L'URL saisie à la fenêtre précédente n'est pas utilisable par pluzz, soit parce que l'URL a mal été saisi, soit parce que pluzz ne gère pas le format du flux.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 3 elif [ $test_url != 0 ] then message="Une erreur inattendue s'est produite.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 4 fi fi #récupération de la commande qui va être utilisée avec pluzz command=$(zenity --list --text="Choissisez ce que vous voulez faire :" --title="Que voulez-vous faire ?" --column="command" --column="action" play "Visionner l'émission" record "Enregistrer l'émission" url "Afficher l'URL du flux" --hide-header --hide-column=1) #quelques vérifications sur la commande choisie précédemment et lancement de pluzz avec les paramètres appropriés if [ "$command" = "" ] then message="Vous n'avez rien sélectionné à la fenêtre précédente.\nPluzz_gui va être fermé." echo -e $message >&2 zenity --info --text="$message" --timeout=$delai --title="Fermeture de pluzz_gui" exit 2 elif [ "$command" = "url" ] then message_url=$($pluzz_cmd $command $url) message=$message_url echo "L'URL du flux est :" echo -e $message zenity --info --text="$message" --title="URL du flux" exit 0 elif [ "$command" = "record" ] then message_intro="Le flux va être enregistré dans le dossier :\n $PWD\nIl sera nommé :\n" message_path=$($pluzz_cmd url $url) message_path=${message_path##*/} message=$message_intro$message_path echo -e $message zenity --info --text="$message" --title="Nom d'enregistrement" fi $pluzz_cmd $command $url exit 0