#!/bin/bash # XMMS - Music Player based on X/GTK+ - by ompolicy # # Email: ompolicy@gmail.com # Site: http://ompolicy.altervista.org which zenity if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ]; then sudo -S apt-get install -y zenity fi title="goXMMS:" name_prog="xmms" author_ompo="ompolicy" email_ompo="ompolicy@gmail.com" ver_xmms="1.3" log_install="$HOME/.nude/log/xmms_log_install" log_apt="$HOME/.nude/log/xmms_log_apt" function Error100 { zenity --info --text="Errore #100 APT-GET / DPKG nell'installazione dei pacchetti!" zenity --text-info --filename="$log_apt" --text="Errore!" sudo -k exit } function Error101 { zenity --info --text="Errore #101 WGET impossibile scarica il pacchetto!" sudo -k exit } function MessageLog { zenity --info --text="Errore durante la compilazione!" zenity --text-info --filename="$log_install" --text="Se verificato un errore!" sudo -k exit } function Password { if [ "$pass" == "" ] then pass=`zenity --entry --hide-text --text="Inserisci password di root:"` if [ $? -eq 1 ] then sudo -k exit 1 fi echo "$pass" | sudo -S -l if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 2` -ne 0 ] then pass="" Password fi export $pass fi } function KillWget { RUNNING=0 while [ $RUNNING -eq 0 ] do if [ -z "$(pidof wget)" ] then sleep 1 RUNNING=1 pkill zenity else if [ -z "$(pidof zenity)" ] then sleep 1 pkill wget exit fi fi done } #funzione per architetture x86 function Install32-64 { choose=`zenity --height=280 --width=300 --title="$title" --text="Per ogni versione è previsto il supporto a 32 e 64 bit\n Scegli la tua versione di Linux:" --list --column="" "Ubuntu Jaunty 9.04" "Ubuntu Intrepid 8.10" "Ubuntu Hardy 8.04" "Debian Lenny 5.0"` case "$choose" in "Ubuntu Jaunty 9.04") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb http://philip.magicalforest.se jaunty extra #deb-src http://philip.magicalforest.se jaunty extra .end Install esac case "$choose" in "Ubuntu Intrepid 8.10") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb http://philip.magicalforest.se intrepid extra #deb-src http://philip.magicalforest.se intrepid extra .end Install esac case "$choose" in "Ubuntu Hardy 8.04") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb http://philip.magicalforest.se hardy extra #deb-src http://philip.magicalforest.se/ hardy extra .end Install esac case "$choose" in "Debian Lenny 5.0") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb http://www.pvv.ntnu.no/~knuta/xmms/lenny ./ #deb-src http://www.pvv.ntnu.no/~knuta/xmms/lenny ./ .end Install esac } #funzione per architetture diverse da x86 function Installno32-64 { choose=`zenity --height=280 --width=300 --title="$title" --text="Scegli la tua versione di Linux:" --list --column="" "Ubuntu Jaunty 9.04" "Ubuntu Intrepid 8.10" "Ubuntu Hardy 8.04" "Debian Lenny 5.0"` case "$choose" in "Ubuntu Jaunty 9.04") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb-src http://philip.magicalforest.se/ jaunty extra .end Installno esac case "$choose" in "Ubuntu Intrepid 8.10") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb-src http://philip.magicalforest.se/ intrepid extra .end Installno esac case "$choose" in "Ubuntu Hardy 8.04") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb-src http://philip.magicalforest.se/ hardy extra .end Installno esac case "$choose" in "Debian Lenny 5.0") sudo -S cat << .end >> /tmp/goXMMS.list ### XMMS ### deb-src http://www.pvv.ntnu.no/~knuta/xmms/lenny ./ .end Installno esac } #sintesi di install per architetture intel-amd function Install { sudo -S mv /tmp/goXMMS.list /etc/apt/sources.list.d/ sudo -S aptitude update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && gpg --export --armor $key | sudo apt-key add -; done | zenity --progress --pulsate --text="Aggiornamento della lista.." --auto-close sudo -S apt-get install -y --force-yes xmms 2> $log_apt if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Error100 fi zenity --info --text="XMMS installato con successo!" --title="$title" } #sintesi di install per altre architetture function Installno { sudo -S mv /tmp/goXMMS.list /etc/apt/sources.list.d/ sudo -S aptitude update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && gpg --export --armor $key | sudo apt-key add -; done | zenity --progress --pulsate --text="Aggiornamento della lista.." --auto-close sudo -S apt-get install -y --force-yes fakeroot 2> $log_apt if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Error100 fi sudo -S apt-get build-dep -y --force-yes xmms 2> $log_apt if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Error100 fi sudo -S apt-get -b source xmms 2> $log_apt if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Error100 fi sudo -S dpkg -i xmms*.deb 2> $log_apt if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Error100 fi zenity --info --text="XMMS installato con successo!" --title="$title" } #installa skins recuperate da gnome-look.org function Skins { wget -P $HOME/ http://ompolicy.altervista.org/ubuntu/intrepid/xmms-community-skins_0.1-ompolicy_all.deb 2>&1 | awk '{print $7} fflush();' | zenity --progress --pulsate --text="Download delle Skins.." --auto-close & KillWget mkdir $HOME/.xmms/Skins sudo -S cp -rf /usr/share/xmms/Skins $HOME/.xmms/ | zenity --progress --auto-close --pulsate --text="Copiatura in locale.." --title="$title" if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -eq 0 ] then zenity --info --text="Skins installate con successo!" --title="$title" else Error101 fi } #ricezione e installazione di alcuni plugins function Plugins { #supporto m4a/mp4/aac, wma, flac e pulseaudio choose=`zenity --height=280 --width=300 --title="$title" --text="Scegli la tua architettura hardware:" --list --column="" "32bit-i386" "64bit-amd64" "lpia-Atom"` if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Start exit fi case "$choose" in "32bit-i386") wget -P $HOME/ http://ompolicy.altervista.org/ubuntu/xmms-wma_1.0.5.orig.tar.gz 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close KillWget mkdir $HOME/.xmms/Plugins/Input echo "$pass" | sudo -S apt-get install xmms-dev tar -xjf xmms-wma-1.0.5.tar.bz2 cd xmms-wma-1.0.5 make make install-home if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -eq 0 ] then echo "$pass" | sudo -S rm $HOME/xmms-wma-1.0.5.tar.bz2 $HOME/xmms-wma-1.0.5 else MessageLog fi wget -P $HOME/plug http://ompolicy.altervista.org/ubuntu/xmms-mp4_2.6-1_i386.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://ppa.launchpad.net/punischdude/ubuntu/pool/main/x/xmms-pulse/xmms-pulse_0.9.4-2_i386.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget cd $HOME/plug echo "$pass" | sudo dpkg -i xmms-mp4_2.6-1_i386.deb xmms-pulse_0.9.4-2_i386.deb sudo -S apt-get install xmms-flac ;; "64bit-amd64") wget -P $HOME/plug http://launchpadlibrarian.net/16366980/libavutil1d_0.cvs20070307-5ubuntu7.1_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://launchpadlibrarian.net/16366983/libavformat1d_0.cvs20070307-5ubuntu7.1_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://launchpadlibrarian.net/16366981/libavcodec1d_0.cvs20070307-5ubuntu7.1_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://launchpadlibrarian.net/10811894/xmms-wma_1.0.5-5build1_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://ompolicy.altervista.org/ubuntu/xmms-mp4_2.6-1_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://ppa.launchpad.net/punischdude/ubuntu/pool/main/x/xmms-pulse/xmms-pulse_0.9.4-2_amd64.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget cd $HOME/plug echo "$pass" | sudo dpkg -i libavutil1d_0.cvs20070307-5ubuntu7.1_amd64.deb libavformat1d_0.cvs20070307-5ubuntu7.1_amd64.deb libavcodec1d_0.cvs20070307-5ubuntu7.1_amd64.deb xmms-wma_1.0.5-5build1_amd64.deb xmms-mp4_2.6-1_amd64.deb xmms-pulse_0.9.4-2_amd64.deb xmms-flac_1.2.1-intrepid~ppa1_amd64.deb sudo -S apt-get install xmms-flac ;; "lpia-Atom") wget -P $HOME/plug http://ompolicy.altervista.org/ubuntu/xmms-mp4_2.6-1_lpia.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget wget -P $HOME/plug http://ppa.launchpad.net/punischdude/ubuntu/pool/main/x/xmms-pulse/xmms-pulse_0.9.4-2_lpia.deb 2>&1 | zenity --progress --pulsate --text="Download del Plugin.." --auto-close & KillWget cd $HOME/plug echo "$pass" | sudo dpkg -i xmms-mp4_2.6-1_lpia.deb xmms-pulse_0.9.4-2_lpia.deb sudo -S apt-get install xmms-flac ;; esac if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -eq 0 ] then zenity --info --text="Plugins installati con successo!" --title="$title" echo "$pass" | sudo -S rm -r $HOME/plug else Error100 fi } function CaseUninstall { uninstall=`zenity --title="$title Rimozione" --text="Sei sicuro?" --list --column="Scegli" Si No` if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Start exit fi case "$uninstall" in "Si") Uninstall | zenity --progress --text="Rimozione In Corso.." --title="$title" --auto-close ;; "No") Start ;; esac } function Uninstall { sudo -S aptitude purge -y xmms xmms-mp4 xmms-pulse xmms-flac xmms-community-skins && sudo -S rm -r /etc/apt/sources.list.d/goXMMS.list $HOME/.xmms | zenity --progress --auto-close --pulsate --text="Rimozione.." --title="$title" sleep 1 zenity --info --text="Rimozione completata!" --title="$title" } function Start { choose=`zenity --height=210 --width=280 --title="$title : Menù principale" --text="Scegli:" --list --column="" "Installa XMMS" "Rimuovi" "Esci"` case "$choose" in "Installa XMMS") Password choose=`zenity --height=280 --width=300 --title="$title" --text="Scegli la tua architettura hardware:" --list --column="" "Intel o Amd" "PowerPC o altre"` if [ `echo ${PIPESTATUS[*]} | cut -d " " -f 1` -ne 0 ] then Start exit fi case "$choose" in "Intel o Amd") Install32-64 Skins Plugins ;; "PowerPC o altre") Installno32-64 Skins ;; esac ;; "Rimuovi") Password CaseUninstall ;; "Esci") sudo -k exit 0 ;; esac } #Controllo esecuzione script con sudo o da root if [ "$(id -u)" == "0" ]; then zenity --info --text="Lancia lo script senza SUDO!" --title=$title exit 1 fi if [ -d "$HOME/.nude" ]; then echo "" else mkdir $HOME/.nude mkdir $HOME/.nude/svn mkdir $HOME/.nude/log touch $HOME/.nude/control fi if [ -d "$HOME/.nude/log" ]; then echo "" else mkdir $HOME/.nude/log fi if [ -d "$HOME/.nude/svn" ]; then echo "" else mkdir $HOME/.nude/svn fi zenity --info --text="XMMS [by $author_ompo]\n\n Script per l'installazione\n di XMMS - Player musicale\n\n $email_ompo\n\n Versione: $ver_xmms" --title="$title Info" Start