#!/bin/bash
# Script que hauria d'ajudar als usuaris instal lar o ajustar algunes coses immediatament
# Després d'instal lar Ubuntu 10,04 lúcid Lynx de 32 bits i 64 bits.
# #
# # Copyright (C) 2010 Andrei Alin, http://www.webupd8.org
# #
# # Aquest programa és programari lliure: podeu redistribuir-lo i / o modificar
# # Sota els termes de la GNU General GNU publicada per
# # La Free Software Foundation, bé de la versió 3 de la Llicència, o
# # (A la seva elecció) qualsevol versió posterior.
# #
# # Aquest programa es distribueix amb l'esperança de ser útil,
# # Però SENSE CAP GARANTIA, fins i tot sense la garantia implícita de
# # COMERCIALITZACIÓ o IDONEÏTAT PER A PROPÒSITS DETERMINATS. Veure la
# # GNU General Public License per més detalls.
# #
# # Hauries haver rebut una còpia de la GNU General Public License
# # Juntament amb aquest programa. Si no, vegeu <http://www.gnu.org/licenses/>.


#Comprobar versió d'Ubuntu:
clear
if [ "lucid" = `lsb_release -cs` ]; then
	if [ "i686" = `uname -m` ]; then
		echo Esteu utilitzant Ubuntu 10.04 Lucid Lynx de 64bits.
	elif [ "x86_64" = `uname -m` ]; then
		echo Esteu utilitzant Ubuntu 10.04 Lucid Lynx de 32bits.
		else
		/usr/bin/zenity --warning --title="Error" --text="Error: Aquest script només funciona amb Ubuntu (tant de 32 bits com de 64 bits)."
		echo Finalitzat perque aquest script només funciona amb Ubuntu \(tant de 32 bits com de 64 bits\).
		exit
	fi
else
	/usr/bin/zenity --warning --title="Error" --text="Error: No esteu utilitzant Ubuntu Lucid Lynx."
	echo Finalitzat perque no esteu utilitzant Ubuntu Lucid Lynx.
	exit
fi

# Previlegis nacessaris:
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
	/usr/bin/zenity --warning --title="Error"  --text="Aquest script necessita privilegis d'administrador
per executar-se. Teclegeu: sudo ./ubuntuplus.sh"
	echo "Finalitzat. Executeu l'script amb sudo (ex: ./ubuntuplus.sh)"
	exit
fi

#executant gconf-tool amb "sudo" no pot establir les opcions per a l'usuari actual però aquest truc permet executar sudo per gconf-tool2 i canviar la configuració per a l'usuari actual, no per a l'usuari root
ON_USER=$(cat /etc/passwd | grep :1000: | cut -d ':' -f 1)
export $(grep -v "^#" ~/.dbus/session-bus/`cat /var/lib/dbus/machine-id`-0)
if sudo -u $ON_USER test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
       eval `sudo -u $ON_USER dbus-launch --sh-syntax --exit-with-session`
fi
echo $ON_USER > /dev/null
echo $DBUS_SESSION > /dev/null
echo $DBUS_SESSION_BUS_ADDRESS > /dev/null
echo $DBUS_SESSION_BUS_WINDOWID > /dev/null
echo $DBUS_SESSION_BUS_PID > /dev/null

/usr/bin/zenity --info --text="Avís: si no es selecciona l'opció 'Afegir fons de programari addicionals', no es podran instal·lar alguns paquets en la segona part de l'script."

choicess=`/usr/bin/zenity --title="Primera part: Ajustaments, correccions i Fons de Programari"  --width=560 --height=340 \
                         --text="Seleccionar:" \
                         --list --column="Selecció" --column="Ajustaments, correccions i Fons de Programari" \
                         --checklist  FALSE "Moure els botons de la finestra a la dreta (estil anterior)." FALSE "Fixar l'Administrador d'actualització." FALSE "Treure icones d'unitats montades a l'escriptori." FALSE "Deshabilitar el so d'entrada GDM." FALSE "Activar les icones en els menús i els botons." FALSE "Deshabilitar la llista GDM de sessió d'usuari." TRUE "Fixa el temps 'apt-get update' per a les fonts de Google Chrome." TRUE "Afegir fons de programari addicionals (GetDeb, Medibuntu etc.)"`


if [ $? -eq 0 ]
then
        IFS="|"
        for choicee in $choicess
        do
               if [ "$choicee" = "Moure els botons de la finestra a la dreta (estil anterior)." ];
                     then 
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --type string --set /apps/metacity/general/button_layout ":minimize,maximize,close"
               elif [ "$choicee" = "Fixar l'Administrador d'actualització." ]
                     then
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool -s --type bool /apps/update-notifier/auto_launch false
              elif [ "$choicee" = "Treure icones d'unitats montades a l'escriptori." ]
                     then
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool -s --type bool /apps/nautilus/desktop/volumes_visible false
               elif [ "$choicee" = "Deshabilitar el so d'entrada GDM." ]
                     then
                     sudo -u gdm gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false
              elif [ "$choicee" = "Activar les icones en els menús i els botons." ]
                     then
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --set /desktop/gnome/interface/buttons_have_icons --type bool true
                     sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --set /desktop/gnome/interface/menus_have_icons --type bool true
              elif [ "$choicee" = "Deshabilitar la llista GDM de sessió d'usuari." ]
                     then
                     sudo -u gdm gconftool-2 --set --type boolean /apps/gdm/simple-greeter/disable_user_list true
             elif [ "$choicee" = "Fixa el temps 'apt-get update' per a les fonts de Google Chrome." ]
                     then
                     echo "Acquire::http::Pipeline-Depth "0";" | sudo tee -a /etc/apt/apt.conf.d/90localsettings
              elif [ "$choicee" = "Afegir fons de programari addicionals (GetDeb, Medibuntu etc.)" ];
                   then
                   sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
                   cat /etc/apt/sources.list_backup | sudo sed -e 's/.*main restricted$//g' > /etc/apt/sources.list 
#s'eliminaran els dipòsits d'Ubuntu per defecte (només si en aquest cas no alterar les cessions temporals existents a continuació) per evitar la repetició idèntica de fonts
                   ARRAY=( 'deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse' 'deb-src http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse' 'deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse' 'deb-src http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse' 'deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse' 'deb-src http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse' 'deb http://archive.canonical.com/ubuntu lucid partner' 'deb-src http://archive.canonical.com/ubuntu lucid partner' 'deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse' 'deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse' 'deb http://packages.medibuntu.org/ lucid free non-free' 'deb-src http://packages.medibuntu.org/ lucid free non-free' 'deb http://archive.getdeb.net/ubuntu lucid-getdeb apps' )
                  ELEMENTS=${#ARRAY[@]}

                  for (( i=0;i<$ELEMENTS;i++));
                      do 
                         repos=`cat /etc/apt/sources.list | grep "${ARRAY[${i}]}"`
                         if [ $? -eq 0 ]
                         then
                              echo "${ARRAY[${i}]}" ja existeix, saltant
                         else
                              echo "${ARRAY[${i}]}" | sudo tee -a /etc/apt/sources.list > /dev/null
 # afegir tots els dipòsits que no estan ja a l'arxiu sources.list
                         fi
                      done
                   wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
                   wget -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
                   sudo apt-get update
               fi
        done
        IFS=""
        /usr/bin/zenity --info --text="Feta la primera part! Anem a fer la segona part."
else
        echo Selecció cancel·lada.
fi

choices=`/usr/bin/zenity --title="Segona part: Instal·lar paquets" --width=580 --height=480 \
                         --text="Elecció de paquets a instal·lar:" \
                         --list --column="Selecció" --column="Paqutes" \
                         --checklist TRUE "gimp" TRUE "pidgin" TRUE "wine" TRUE "chromium-browser" TRUE "gnome-do" TRUE "vlc" TRUE "mplayer" TRUE "thunderbird" TRUE "Còdecs (multimèdia, java, flash), suport addicional dels arxius i fonts" TRUE "ubuntu-tweak" TRUE "dropbox" TRUE "CompizConfig Settings Manager" TRUE "Skype" TRUE "Google Chrome" FALSE "Eines de desenvolupament (de build-essential a Subversion i GIT)"`

if [ $? -eq 0 ]
then
        IFS="|"
        for choice in $choices
        do
              if [ "$choice" = "Còdecs (multimèdia, java, flash), suport addicional dels arxius i fonts" ];
               # sudo apt-get install "$choice"
                   then
                       if [ "i686" = `uname -m` ]; then
                           sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install --yes sun-java6-plugin
                           sudo apt-get -y --force-yes install gstreamer0.10-ffmpeg gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse libdvdnav4 libdvdread4 libdvdcss2 libxine1-ffmpeg ffmpeg w32codecs flashplugin-nonfree sun-java6-fonts rar unrar p7zip-full p7zip-rar unace unp ttf-mscorefonts-installer ttf-liberation
                       else
                           sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install --yes sun-java6-plugin
                           sudo apt-get -y --force-yes install gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse libdvdnav4 libdvdread4 libdvdcss2 libxine1-ffmpeg ffmpeg w64codecs sun-java6-fonts rar unrar p7zip-full p7zip-rar unace unp ttf-mscorefonts-installer ttf-liberation
                           cd /tmp
                           wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
                           tar xzf libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
                           sudo mv libflashplayer.so /usr/lib/mozilla/plugins
                           rm libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
                      fi
              

             elif [ "$choice" = "Google Chrome" ];
                   then
                        cd /tmp
                        if [ "i686" = `uname -m` ]; then
                           wget http://dl.google.com/linux/direct/google-chrome-unstable_current_i386.deb
                           sudo dpkg -i --force-all google-chrome-unstable_current_i386.deb
                           sudo apt-get install -f -y
                           rm google-chrome-unstable_current_i386.deb
                        else
                           wget http://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb
                           sudo dpkg -i --force-all google-chrome-unstable_current_amd64.deb
                           sudo apt-get install -f -y
                           rm google-chrome-unstable_current_amd64.deb
                         fi
             elif [ "$choice" = "Skype" ];
                   then
                        cd /tmp
                        if [ "i686" = `uname -m` ]; then
                           wget http://download.skype.com/linux/skype-ubuntu-intrepid_2.1.0.81-1_i386.deb
                           sudo dpkg -i --force-all skype-ubuntu-intrepid_2.1.0.81-1_i386.deb
                           sudo apt-get install -f -y
                           rm skype-ubuntu-intrepid_2.1.0.81-1_i386.deb
                        else
                           wget http://download.skype.com/linux/skype-ubuntu-intrepid_2.1.0.81-1_amd64.deb
                           sudo dpkg -i --force-all skype-ubuntu-intrepid_2.1.0.81-1_amd64.deb
                           sudo apt-get install -f -y
                           rm skype-ubuntu-intrepid_2.1.0.81-1_amd64.deb
                         fi
             elif [ "$choice" = "Eines de desenvolupament (de build-essential a Subversion i GIT)" ];
                   then
                        sudo apt-get -y --force-yes install build-essential automake make checkinstall devscripts patch dpatch patchutils autotools-dev debhelper quilt fakeroot xutils lintian pbuilder cmake dh-make libtool autoconf git-core subversion
             elif [ "$choice" = "dropbox" ];
                   then
                         reposs=`cat /etc/apt/sources.list | grep "dropbox"`
                         if [ $? -eq 0 ]
                         then
                              echo Les fonts de Dropbox ja existeixen
                              sudo apt-get update
                              sudo apt-get -y --force-yes install nautilus-dropbox
                         else
                              echo "deb http://linux.dropbox.com/ubuntu karmic main" | sudo tee -a /etc/apt/sources.list > /dev/null
                              sudo gpg --keyserver pgp.mit.edu --recv-keys 3565780E
                              sudo apt-get update
                              sudo apt-get -y --force-yes install nautilus-dropbox
                         fi
              elif [ "$choice" = "CompizConfig Settings Manager" ];
                   then
                        sudo apt-get -y --force-yes install compizconfig-settings-manager

              else
                        sudo apt-get -y --force-yes install $choice
            fi
       done
       IFS=""
        /usr/bin/zenity --info --text="<b>FET!<http://www.google.es/firefox?client=firefox-a&rls=org.mozilla:ca:official/b> Tots els paquets seleccionats s'han instal lat."
        echo "Finalitzat."
else
       echo Selecció cancel·lada.
fi

