Bonjour,
Sur base de
se sujet j'ai décidé de me lancer dans la création d'un script d'installation automatique.
L'idée n'est donc pas de moi, je ne voulais surtout pas réinventer la roue, mais cette année (2ieme bachelier en informatique) nous avons eu une introduction au langage shell, et je trouvais ça l'excuse idéal pour apprendre en étant utile.
Je vous propose donc ma version du script :
#!/bin/bash
#####################################################################
# Date : 18 Dec 2007
# Auteur : Andreatta Sébastien
#
#
# Installation :
#
# Il suffit de rendre le script exécutable :
# chmod +x ./SoEasyFedora.sh
# et de lancer le programme ./SoEasyFedora.sh [options]
#
# Une liste des options est disponible en utilisant ./SoEasyFedora.sh -h
#
#
# Description :
#
# Ce programme permet d'installer facilement de nombreuses applications (33) après formatage
#
# Programmes :
#
# Dépôts : Livna, Adobe
# Drivers : Nvidia, Ati
# Internet : Opera, Flash, FileZilla, Thunderbird
# Discussions : Amsn, AmsnDev, Xchat
# Téléchargements : Amule
# Multimédia : Mplayer, Totem, Amarok, Audacious, Audacity, Gnomebaker, K3b
# Utilitaires : Unace, Unrar, Unzip, VirtualBox, Gsynaptics, NumlockX, Glipper
# Graphisme : EchoIcon, Compiz Fusion
# Jeux : GamesMenus, Wormux, Poker3D, TuxDroid
#
# Mise à jour :
#
# 0.5 : Ajout des drivers Nvidia/Ati et du Tux Droid Manager
#
# Todo :
#
# Ateindre une etape directement
# Langue française Opera automatique : .opera/opera6.ini..
#
#####################################################################
#############################################
# Les Variables #
#############################################
# Couleur
red='\E[31m'
green='\E[32m'
blue='\E[34m'
# Variables Globales
SCRIPT_NAME="SoEasyFedora"
SCRIPT_VERSION="0.5"
NBR_ETAPES=29
WORK_DIR=`pwd`
PROGRAMME="Programmes"
DOWNLOAD="Téléchargement"
NVIDIA=0
ATI=0
USER=`echo $WORK_DIR | cut -f3 -d/`
# Chemin d'access
LOG="$WORK_DIR/$SCRIPT_NAME.log"
RUNFILE="$WORK_DIR/.$SCRIPT_NAME"
INSTALL_MEDIA="/etc/yum.repos.d/Fedora-install-media.repo"
# Variables modifiables
INTERACTIF=1
VERBOSE=0
PORTABLE=0
USER_UID=500
USER_GID=500
ETAPES=0
DERNIERES_ETAPES=0
GNOME=1
CARTE_GRAPHIQUE_NVIDIA=1
CARTE_GRAPHIQUE_ATI=0
KDE=0
# Url de téléchargements
URL_LIVNA="http://rpm.livna.org/livna-release-8.rpm"
URL_ADOBE="http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm"
URL_AMSN="http://amsn.sourceforge.net/amsn_dev.tar.gz"
URL_OPERA="http://opera.mirrors.skynet.be/pub/opera/linux/925/final/en/i386/shared/opera-9.25-20071214.6-shared-qt.i386-en.rpm"
URL_OPERA_LNG="http://www.opera.com/download/lng/925/ouw925_fr.lng"
URL_MPLAYER_CODECS="http://www.mplayerhq.hu/MPlayer/releases/codecs/mplayer-codecs-20061022-1.i386.rpm"
URL_MPLAYER_CODECS_EXTRAS="http://www.mplayerhq.hu/MPlayer/releases/codecs/mplayer-codecs-extra-20061022-1.i386.rpm"
URL_VIRTUALBOX="http://www.virtualbox.org/download/1.5.2/VirtualBox-1.5.2_25433_fedora7-1.i586.rpm"
URL_WORMUX="http://download.gna.org/wormux/wormux-0.8beta3.tar.bz2"
URL_TUXDROID="http://www.tuxisalive.com/developer-corner/software/tuxsetup/releases/1.2-final/tuxsetup-1.2.0037-final.tar.gz"
URL_TUXDROID_TTS="http://www.tuxisalive.com/Members/remi/for-tuxsetup-and-voices-release/voice-files-tar.gz/tuxdroid-tts-voices.French.tar.gz"
#############################################
# Corps Du Programme #
#############################################
function GetArg {
while getopts "aGhkpvVg:n:u:W:" Opt
do
case $Opt in
a ) CARTE_GRAPHIQUE_ATI=1;ATI=1;;
g ) USER_GID="$OPTARG";;
G ) GNOME=0;;
h ) Aide;;
k ) KDE=1;;
n ) CARTE_GRAPHIQUE_NVIDIA=$OPTARG;NVIDIA=1;;
p ) PORTABLE=1;;
u ) USER_UID="$OPTARG";;
v ) VERBOSE=1;;
V ) echo "$SCRIPT_NAME"; echo "Version: $SCRIPT_VERSION";exit 0;;
W ) WORK_DIR="$OPTARG";;
esac
done
shift $(($OPTIND - 1))
}
function Aide {
echo "Usage : $0 [options]."
echo ""
echo "Les options possibles sont :"
echo ""
echo " -a : Installer les drivers Ati plutôt que Nvidia"
echo " -g USER_GID : Définit le groupe qui sera appliqué au dossier."
echo " Défaut : $USER_GID ."
echo " -G : Ne pas installer les applications pour Gnome"
echo " -h : Affiche ce message d'aide et quitte."
echo " -k : Installer les applications pour Kde"
echo " -n : Driver à installer pour les cartes graphiques Nvidia"
echo " 1 = Geforce 5 et plus, 2 = Geforce 2 à 4, 3 = Carte plus ancienne"
echo " Défaut : $CARTE_GRAPHIQUE_NVIDIA"
echo " -p : Spécifie si les paquets pour ordinateur portable doivent être installés"
echo " -u USER_UID : Défini le uid qui sera appliqué au dossier."
echo " Défaut : $USER_UID ."
echo " -w WORK_DIR : Définit le dossier de travail ."
echo " Défaut : $WORK_DIR ."
echo " -v : Mode verbeux ."
echo " -V : Affiche le nom du programme et la version ."
exit 0
}
function CouleurEcho {
message="$1"
color=$2
echo -en "$color"
echo -e "$message"
tput sgr0
}
function LogTitre {
echo -e "###########################################################" >>$LOG
echo -e "#\t\t\t $1 #" >>$LOG
echo -e "###########################################################\n\n" >>$LOG
}
function VerifErreur {
if [ $? -ne 0 ]
then
CouleurEcho "[Erreur] Une erreur s'est produite, regarder dans $LOG pour plus de détails." $red
echo -e $red
echo -e `tail -n 3 $LOG`
Question "[Erreur] Voulez-vous continuer quand même ? " 1 $red
if [ $? -ne 1 ]
then
exit 1
fi
tput sgr0
fi
}
function Exec {
if [ $VERBOSE -eq 1 ]
then
$1
else
$1 >>$LOG 2>&1
fi
VerifErreur
}
function VerifStatut {
if [ -r $RUNFILE ]
then
RKDE=`tail .SoEasyFedora | grep KDE | cut -d= -f2`
RGNOME=`tail .SoEasyFedora | grep GNOME | cut -d= -f2`
RUSER_UID=`tail .SoEasyFedora | grep USER_UID | cut -d= -f2`
RUSER_GID=`tail .SoEasyFedora | grep USER_GID | cut -d= -f2`
RPORTABLE=`tail .SoEasyFedora | grep PORTABLE | cut -d= -f2`
RWORK_DIR=`tail .SoEasyFedora | grep WORK_DIR | cut -d= -f2`
RDERNIERES_ETAPES=`tail .SoEasyFedora | grep ETAPES | cut -d= -f2`
RINTERACTIF=`tail .SoEasyFedora | grep INTERACTIF | cut -d= -f2`
RVERBOSE=`tail .SoEasyFedora | grep VERBOSE | cut -d= -f2`
RAPPEL_AMSN=`tail .SoEasyFedora | grep RAPPEL_AMSN | cut -d= -f2`
RAPPEL_ECHO=`tail .SoEasyFedora | grep RAPPEL_ECHO | cut -d= -f2`
RAPPEL_OPERA=`tail .SoEasyFedora | grep RAPPEL_OPERA | cut -d= -f2`
RAPPEL_VBOX=`tail .SoEasyFedora | grep RAPPEL_VBOX | cut -d= -f2`
RAPPEL_TUXDROID=`tail .SoEasyFedora | grep RAPPEL_TUXDROID | cut -d= -f2`
RCARTE_GRAPHIQUE_NVIDIA=`tail .SoEasyFedora | grep CARTE_GRAPHIQUE_NVIDIA | cut -d= -f2`
RCARTE_GRAPHIQUE_ATI=`tail .SoEasyFedora | grep CARTE_GRAPHIQUE_ATI | cut -d= -f2`
echo " $SCRIPT_NAME a déjà été lancé une fois, avec les options suivantes :"
echo -e
if [ $RUSER_UID ]; then if [ $RUSER_UID != 500 ]; then echo -e "\t-g $RUSER_GID";fi;fi
if [ $RGNOME ]; then if [ $RGNOME != 1 ]; then echo -e "\t-G";fi;fi
if [ $RKDE ]; then if [ $RKDE != 0 ]; then echo -e "\t-k";fi;fi
if [ $RCARTE_GRAPHIQUE_NVIDIA ]; then if [ $RCARTE_GRAPHIQUE_NVIDIA != 1 ]; then echo -e "\t-n $RCARTE_GRAPHIQUE_NVIDIA";fi;fi
if [ $RPORTABLE ]; then if [ $RPORTABLE != 0 ]; then echo -e "\t-p";fi;fi
if [ $RUSER_GID ]; then if [ $RUSER_GID != 500 ]; then echo -e "\t-u $RUSER_GID";fi;fi
if [ $RVERBOSE ]; then if [ $RVERBOSE != 0 ]; then echo -e "\t-v";fi;fi
if [ $RWORK_DIR ]; then if [ $RWORK_DIR != `pwd` ]; then echo -e "\t-w $RWORK_DIR";fi;fi
if [ $RINTERACTIF ]; then if [ $RINTERACTIF != 0 ]; then echo -e "\t-Mode automatique";else echo -e "\t-Mode interactif";fi;fi
if [ $RCARTE_GRAPHIQUE_ATI ]; then if [ $RCARTE_GRAPHIQUE_ATI != 0 ]; then echo -e "\t-Avec les pilotes Ati";fi;fi
if [[ $RDERNIERES_ETAPES -gt 0 ]]; then echo -e "\t-Arreté a l'etape $RDERNIERES_ETAPES";fi
echo -e
if [[ $RDERNIERES_ETAPES -lt $NBR_ETAPES ]]
then
Question "[Continue] Voulez-vous continuer " 1
if [ $? -eq 1 ]
then
DERNIERES_ETAPES=$RDERNIERES_ETAPES
if [ $RKDE ]; then KDE=$RKDE;fi
if [ $RGNOME ]; then GNOME=$RGNOME;fi
if [ $RUSER_UID ]; then USER_UID=$RUSER_UID;fi
if [ $RUSER_GID ]; then USER_GID=$RUSER_GID;fi
if [ $RWORK_DIR ]; then WORK_DIR=$RWORK_DIR;fi
if [ $RPORTABLE ]; then PORTABLE=$RPORTABLE;fi
if [ $RINTERACTIF ]; then INTERACTIF=$RINTERACTIF;fi
if [ $RVERBOSE ]; then VERBOSE=$RVERBOSE;fi
fi
rm -rf $RUNFILE
else
CouleurEcho "Le script a déjà effectué toutes les actions posibles" $red
exit 0
fi
fi
echo "KDE=$KDE" >>$RUNFILE
echo "GNOME=$GNOME" >>$RUNFILE
echo "USER_UID=$USER_UID" >>$RUNFILE
echo "USER_GID=$USER_GID" >>$RUNFILE
echo "WORK_DIR=$WORK_DIR" >>$RUNFILE
echo "PORTABLE=$PORTABLE" >>$RUNFILE
echo "INTERACTIF=$INTERACTIF" >>$RUNFILE
echo "VERBOSE=$VERBOSE" >>$RUNFILE
echo "ETAPES=$ETAPES" >>$RUNFILE
echo "RAPPEL_AMSN=$RAPPEL_AMSN" >>$RUNFILE
echo "RAPPEL_OPERA=$RAPPEL_OPERA" >>$RUNFILE
echo "RAPPEL_VBOX=$RAPPEL_VBOX" >>$RUNFILE
echo "RAPPEL_ECHO=$RAPPEL_ECHO" >>$RUNFILE
echo "RAPPEL_TUXDROID=$RAPPEL_TUXDROID" >>$RUNFILE
echo "CARTE_GRAPHIQUE_ATI=$CARTE_GRAPHIQUE_ATI" >>$RUNFILE
echo "CARTE_GRAPHIQUE_NVIDIA=$CARTE_GRAPHIQUE_NVIDIA" >>$RUNFILE
}
function ChangeRunFile {
case $1 in
RAPPEL_AMSN)
RAPPEL_AMSN=$2
sed -i "s/RAPPEL_AMSN=.*/RAPPEL_AMSN=$2/" $RUNFILE
;;
RAPPEL_ECHO)
RAPPEL_ECHO=$2
sed -i "s/RAPPEL_ECHO=.*/RAPPEL_ECHO=$2/" $RUNFILE
;;
RAPPEL_OPERA)
RAPPEL_OPERA=$2
sed -i "s/RAPPEL_OPERA=.*/RAPPEL_OPERA=$2/" $RUNFILE
;;
RAPPEL_VBOX)
RAPPEL_VBOX=$2
sed -i "s/RAPPEL_VBOX=.*/RAPPEL_VBOX=$2/" $RUNFILE
;;
RAPPEL_TUXDROID)
RAPPEL_TUXDROID=$2
sed -i "s/RAPPEL_TUXDROID=.*/RAPPEL_TUXDROID=$2/" $RUNFILE
;;
ETAPES)
sed -i "s/ETAPES=.*/ETAPES=$ETAPES/" $RUNFILE
;;
esac
}
function Question {
if [[ $ETAPES -gt $DERNIERES_ETAPES || $ETAPES -eq 0 ]]
then
REPLY="vide"
if [ $2 -eq 0 ]; then NON="Non" ; OUI="oui" ; fi
if [ $2 -eq 1 ]; then OUI="Oui"; NON="non" ; fi
if [ $3 ]; then COLOR=$3; else COLOR=$green; fi
if [ $INTERACTIF -eq 0 ]
then
return $2
else
while [[ "$REPLY" != "n" && "$REPLY" != "N" && "$REPLY" != "o" && "$REPLY" != "O" ]]
do
CouleurEcho "$1 ($OUI/$NON/automatique) ? " $COLOR; read
case $REPLY in
"o" | "O" | "Oui" | "OUI" | "oui" ) return 1;;
"n" | "N" | "Non" | "NON" | "non" ) return 0;;
"A" | "a" | "Automatique" | "automatique" ) INTERACTIF=0; return $2;;
"" ) return $2;;
* ) return $2;;
esac
done
fi
else
if [ -z $REPRISE ]
then
REPRISE=1
CouleurEcho "\nReprise ...\n" $blue
return 3;
fi
fi
}
function Etapes {
if [[ $DERNIERES_ETAPES -lt $2 && $INTERACTIF -eq 1 ]]
then
CouleurEcho "~~~~~~~~~~~~~~~~~~~~~~ $1~~~~~~~~~~~~~~~~~~~~~~" $blue
fi
}
#############################################
# Préparation #
#############################################
function UserIsRoot {
if [ $UID -ne 0 ]
then
CouleurEcho "[Erreur] Vous devez être root pour pouvoir continuer l'installation." $red
CouleurEcho "Entrez le mot de passe root :" $red
exec su -c "${0}"
exit ${?}
fi
}
function Interactif {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous utiliser le mode interactif (Une question vous sera posée pour chaque action)" 1
local RETOUR=$?
if [ $RETOUR -eq 0 ]
then
INTERACTIF=0
fi
if [[ $RETOUR -eq 1 && $INTERACTIF -eq 1 ]]
then
CouleurEcho "Taper "A" pour accepter la réponse par défaut et continuer dans un mode non interactif" $blue
fi
ChangeRunFile "ETAPES"
}
function VerifFolder {
Question "$ETAPES/$NBR_ETAPES) Le script va installer les différents programmes dans $WORK_DIR/$PROGRAMME êtes-vous daccord ?" 1
REPONSE=$?
if [[ $REPONSE -eq 1 && ! -d "$WORK_DIR/$PROGRAMME" ]]
then
LogTitre "Verification des repertoires\t"
Exec "mkdir "$WORK_DIR/$PROGRAMME""
Exec "chown $USER_UID:$USER_GID "$WORK_DIR/$PROGRAMME""
fi
if [ $REPONSE -ne 1 ]
then
CouleurEcho "[Erreur] Veuillez specifier le répèrtoire d'installation avec l'option -w" $red
exit 0
fi
ChangeRunFile "ETAPES"
}
function MiseAJour {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous mettre à jour votre système (Ce processus peut être très lent)" 1
if [ $? -eq 1 ]
then
LogTitre "Config Initial\t\t\t"
Exec "yum -y update yum"
Exec "yum -y update"
Exec "updatedb"
fi
ChangeRunFile "ETAPES"
}
function Dependance {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer les dépendances requises par le programme" 1
if [ $? -eq 1 ]
then
LogTitre "Dépendance\t\t\t"
Exec "yum -y install yum-fastestmirror subversion kernel-devel"
fi
ChangeRunFile "ETAPES"
}
function InstallMedia {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous désactiver le media DVD dans les dépôts" 1
if [ $? -eq 1 ]
then
LogTitre "Install Media\t\t\t"
echo "enabled=0" >> $INSTALL_MEDIA
fi
ChangeRunFile "ETAPES"
}
#############################################
# Dépots #
#############################################
function Livna {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le dépôt Livna ?" 1
if [ $? -eq 1 ]
then
LogTitre "Livna\t\t\t\t"
Exec "rpm -U $URL_LIVNA"
fi
ChangeRunFile "ETAPES"
}
function Adobe {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le dépôt Adobe (Flash)" 1
if [ $? -eq 1 ]
then
LogTitre "Adobe\t\t\t\t"
Exec "rpm -U $URL_ADOBE"
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Drivers #
#############################################
function Nvidia {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer les drivers Nvidia" $NVIDIA
if [ $? -eq 1 ]
then
Exec "cp /etc/X11/xorg.conf /etc/X11/xorg.conf.save"
case $CARTE_GRAPHIQUE_NVIDIA in
"1" ) exec "yum -y install kmod-nvidia";;
"2" ) exec "yum -y install kmod-nvidia-96xx";;
"3" ) exec "yum -y install kmod-nvidia-legacy";;
esac
fi
ChangeRunFile "ETAPES"
}
function Ati {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer les drivers Ati" $ATI
if [ $? -eq 1 ]
then
Exec "cp /etc/X11/xorg.conf /etc/X11/xorg.conf.save"
Exec "yum -y install kmod-fglrx livna-config-display"
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Internet #
#############################################
function Amsn {
ChangeRunFile "RAPPEL_AMSN" 0
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer la version stable d'amsn (Si vous refusez la version de dev vous sera proposée)" 0
if [ $? -eq 1 ]
then
LogTitre "Amsn Dev\t\t\t"
Exec "yum -y install amsn"
ChangeRunFile "RAPPEL_AMSN" 1
fi
ChangeRunFile "ETAPES"
}
function AmsnDev {
if [ -z $QUESTION_AMSN ]
then
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer la version de dévelopement d'amsn" 1
if [ $? -eq 1 ]
then
INSTALL_AMSN=1
fi
fi
QUESTION_AMSN=1
if [[ $RAPPEL_AMSN -eq 0 && $INSTALL_AMSN -eq 1 ]]
then
LogTitre "Amsn\t\t\t\t"
Exec "yum -y install gcc gcc-c++ tcl-devel tk-devel libpng-devel libjpeg-devel"
Exec "cd $DOWNLOAD"
Exec "wget -nv $URL_AMSN"
Exec "tar -zxf amsn_dev.tar.gz -C "$WORK_DIR/$PROGRAMME""
Exec "cd "$WORK_DIR/$PROGRAMME/msn""
Exec "sh ./configure"
Exec "make"
Exec "make install"
Exec "rm -rf "$WORK_DIR/$DOWNLOAD/amsn_dev.tar.gz""
ChangeRunFile "RAPPEL_AMSN" 1
elif [[ $RAPPEL_AMSN -eq 1 && $INSTALL_AMSN -eq 1 ]]
then
CouleurEcho "[Erreur] Amsn est déjà installé,la version de dévelopement supprimera la version stable" $red
Question "Êtes-vous sur de vouloir continuer" 0 $red
if [ $? -eq 1 ]
then
ChangeRunFile "RAPPEL_AMSN" 0
Exec "yum -y remove amsn"
AmsnDev
fi
fi
ChangeRunFile "ETAPES"
}
function Opera {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Opera" 1
if [ $? -eq 1 ]
then
LogTitre "Opera\t\t\t\t"
Exec "yum -y install compat-libstdc++-33 qt"
Exec "rpm -U $URL_OPERA"
Exec "wget -nv $URL_OPERA_LNG -O /usr/share/opera/locale/french.lng "
ChangeRunFile "RAPPEL_OPERA" 1
fi
ChangeRunFile "ETAPES"
}
function Flash {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le support flash pour Firefox et Opera" 1
if [ $? -eq 1 ]
then
LogTitre "Flash\t\t\t\t"
Exec "yum -y install flash-plugin"
fi
ChangeRunFile "ETAPES"
}
function Amule {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Amule" 1
if [ $? -eq 1 ]
then
LogTitre "Amule\t\t\t\t"
Exec "yum -y install amule"
fi
ChangeRunFile "ETAPES"
}
function Xchat {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le logiciel Xchat" 1
if [ $? -eq 1 ]
then
LogTitre "Xchat\t\t\t\t"
if [ $KDE -eq 1 ]
then
Exec "yum -y install xchat"
fi
if [ $GNOME -eq 1 ]
then
Exec "yum -y install xchat-gnome"
fi
fi
ChangeRunFile "ETAPES"
}
function FileZilla {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer FileZilla" 1
if [ $? -eq 1 ]
then
LogTitre "FileZilla\t\t\t"
Exec "yum -y install filezilla"
fi
ChangeRunFile "ETAPES"
}
function ThunderBird {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer ThunderBird et son extension (mail-notification)" 1
if [ $? -eq 1 ]
then
LogTitre "ThunderBird\t\t\t"
Exec "yum -y install thunderbird mail-notification"
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Multimédia #
#############################################
function Mplayer {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Mplayer et son plugin pour Firefox & Opera" 1
if [ $? -eq 1 ]
then
LogTitre "MPlayer\t\t\t"
Exec "rpm -U $URL_MPLAYER_CODECS"
Exec "rpm -U $URL_MPLAYER_CODECS_EXTRAS"
Exec "yum -y install mplayer mplayerplug-in mplayer-fonts mplayer-gui"
fi
ChangeRunFile "ETAPES"
}
function Totem {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Totem et ces codecs" 1
if [ $? -eq 1 ]
then
LogTitre "Totem\t\t\t\t"
Exec "yum -y install totem gstreamer-ffmpeg gstreamer-plugins-bad gstreamer-plugins-ugly"
fi
ChangeRunFile "ETAPES"
}
function Audio {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer un lecteur audio (Kde : Amarok, Gnome : Audacious)" 1
if [ $? -eq 1 ]
then
LogTitre "Audio\t\t\t\t"
if [ $KDE -eq 1 ]
then
Exec "yum -y amarok amarok-extras-nonfree"
fi
if [ $GNOME -eq 1 ]
then
Exec "yum -y audacious audacious-plugins-nonfree-{aac,alac,lame,mms,mp3,tta,wma}"
fi
fi
}
function Audacity {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Audacity" 1
if [ $? -eq 1 ]
then
LogTitre "Audacity\t\t\t"
Exec "yum -y install audacity-nonfree"
fi
ChangeRunFile "ETAPES"
}
function Gravure {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le logiciel de gravure (Kde : K3b , Gnome : Gnomebaker)" 1
if [ $? -eq 1 ]
then
LogTitre "Gravure\t\t\t"
if [ $KDE -eq 1 ]
then
Exec "yum -y install k3b-extras-nonfree"
fi
if [ $GNOME -eq 1 ]
then
Exec "yum -y install gnomebaker"
fi
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Graphisme #
#############################################
function EchoIcon {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer le thême d'icone Echo" 1
if [ $? -eq 1 ]
then
LogTitre "Icone Echo\t\t\t"
Exec "yum -y install echo-icon-theme"
ChangeRunFile "RAPPEL_ECHO" 1
fi
ChangeRunFile "ETAPES"
}
function CompizFusion {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Compiz-Fusion" 1
if [ $? -eq 1 ]
then
LogTitre "Compiz-Fusion\t\t\t"
Exec "yum -y install compiz compiz-fusion fusion-icon compiz-fusion-extras ccsm emerald emerald-themes"
if [ $KDE -eq 1 ]
then
Exec "yum -y install compiz-kde kicker-compiz"
fi
if [ $GNOME -eq 1 ]
then
Exec "yum -y install compiz-gnome"
fi
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Utilitaire #
#############################################
function VirtualBox {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer VirtualBox" 1
if [ $? -eq 1 ]
then
LogTitre "VirtualBox\t\t\t"
Exec "yum -y install kernel-devel"
Exec "rpm -U $URL_VIRTUALBOX"
ChangeRunFile "RAPPEL_VBOX" 1
fi
ChangeRunFile "ETAPES"
}
function Compression {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer unrar, unace et unzip" 1
if [ $? -eq 1 ]
then
LogTitre "Compression\t\t\t"
Exec "yum -y install unace unrar unzip"
fi
ChangeRunFile "ETAPES"
}
function NumLockX {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer numlockx (Verouillage du numlock au démarrage)" 1
if [ $? -eq 1 ]
then
LogTitre "NumLockX\t\t\t"
Exec "yum -y install numlockx"
fi
ChangeRunFile "ETAPES"
}
function Glipper {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Glipper" 1
if [ $? -eq 1 ]
then
LogTitre "Glipper\t\t\t"
Exec "yum -y install glipper"
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Optionnel (Uniquement si -p) #
#############################################
function Gsynaptics {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Gsynaptics (Utile pour les ordinateurs portables)" $PORTABLE
if [ $? -eq 1 ]
then
LogTitre "Gsynaptics\t\t\t"
Exec "yum -y install gsynaptics"
fi
ChangeRunFile "ETAPES"
}
#############################################
# Programmes : Jeux #
#############################################
function GamesMenus {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Games-menus" 1
if [ $? -eq 1 ]
then
LogTitre "Games-menus\t\t\t"
Exec "yum -y install games-menus"
fi
ChangeRunFile "ETAPES"
}
function Wormux {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Wormux" 1
if [ $? -eq 1 ]
then
LogTitre "Wormux\t\t\t\t"
Exec "yum -y install SDL-devel libxml++-devel curl-devel SDL-devel SDL_image-devel SDL_mixer-devel SDL_gfx-devel SDL_net-devel SDL_ttf-devel"
Exec "cd "$WORK_DIR/$DOWNLOAD""
Exec "wget -nv $URL_WORMUX"
Exec "tar -xjf wormux-0.8beta3.tar.bz2 -C "$WORK_DIR/$PROGRAMME""
Exec "cd "$WORK_DIR/$PROGRAMME/wormux-0.8beta3""
Exec "sh ./configure"
Exec "make"
Exec "make install"
Exec "rm -rf "$WORK_DIR/$DOWNLOAD/wormux-0.8beta3.tar.bz2""
fi
ChangeRunFile "ETAPES"
}
function Poker3D {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer Poker3D" 1
if [ $? -eq 1 ]
then
LogTitre "Pocker3D\t\t\t"
Exec "yum -y install poker3d"
fi
ChangeRunFile "ETAPES"
}
function TuxDroid {
Question "$ETAPES/$NBR_ETAPES) Voulez-vous installer les programmes pour la gestion du TuxDroid" 1
if [ $? -eq 1 ]
then
LogTitre "TuxDroid\t\t\t"
Exec "cd "$WORK_DIR/$DOWNLOAD""
Exec "wget -nv $URL_TUXDROID"
Exec "wget -nv $URL_TUXDROID_TTS"
Exec "tar -xzf tuxsetup-1.2.0037-final.tar.gz -c "$WORK_DIR/$PROGRAMME""
Exec "tar -xzf tuxdroid-tts-voices.French.tar.gz -c "$WORK_DIR/$PROGRAMME""
Exec "cd "$WORK_DIR/$PROGRAMME/tuxsetup-1.2.0037-final""
Exec "make install"
Exec "cd "$WORK_DIR/$PROGRAMME/tuxdroid-tts-voices.French""
Exec "mkdir -p /opt/Acapela/TelecomTTS/babtts/engines"
Exec "cp -R French /opt/Acapela/TelecomTTS/babtts/engines"
ChangeRunFile "RAPPEL_TUXDROID" 1
fi
ChangeRunFile "ETAPES"
}
#############################################
# Fin du Programme #
#############################################
function Rappel {
if [ !-z $RAPPEL_AMSN ]
then
CouleurEcho "Si Selinux est activé utilisé cette commande pour autoriser Amsn :" $blue
CouleurEcho "\t chcon -t textrel_shlib_t /home/*/.amsn/plugins/tls1.50/libtls1.50.so" $blue
echo -e "_________________________________________________________________________________________\n"
fi
if [ !-z $RAPPEL_TUXDROID ]
then
CouleurEcho "Si Selinux est activé utiliser cette commande pour autoriser TuxDroid :" $blue
CouleurEcho "\t chcon -t ????" $blue
echo -e "_________________________________________________________________________________________\n"
fi
if [ !-z $RAPPEL_VBOX ]
then
CouleurEcho "N'oubliez pas de vous ajouter au groupe vboxuser en utilisant la commande :" $blue
CouleurEcho "\t su - \n\t usermod -aG vboxusers $USER" $blue
echo -e "_________________________________________________________________________________________\n"
fi
if [ !-z $RAPPEL_ECHO ]
then
CouleurEcho "Si vous voulez utiliser le thème echo vous devez vous rendre dans le menu :\n\t Système->Préférences->Apparence->Apparence" $blue
CouleurEcho "Cliquez sur \"Personnaliser ...\" , \"Icônes\" et \"Echo\"" $blue
echo -e "_________________________________________________________________________________________\n"
fi
if [ !-z $RAPPEL_OPERA ]
then
CouleurEcho "La langue française pour Opera a été ajoutée rendez-vous dans Tools/Préférences (ALT-F12) et cliquez sur Détails.." $blue
CouleurEcho "vous pouvez choisir le fichier french.lng" $blue
echo -e "_________________________________________________________________________________________\n"
fi
}
#############################################
# Main #
#############################################
#clear
GetArg "$@"
CouleurEcho "Bienvenue dans mon petit programme" $blue
echo -e "\n\n"
rm -rf $LOG
UserIsRoot
VerifStatut
Etapes "Initialisation ~" 5
(( ETAPES = ETAPES + 1 ));Interactif
(( ETAPES = ETAPES + 1 ));VerifFolder
(( ETAPES = ETAPES + 1 ));Dependance
(( ETAPES = ETAPES + 1 ));MiseAJour
(( ETAPES = ETAPES + 1 ));InstallMedia
Etapes "Dépôts ~~~~~~~~~" 7
(( ETAPES = ETAPES + 1 ));Livna
(( ETAPES = ETAPES + 1 ));Adobe
Etapes "Drivers ~~~~~~~~" 9
(( ETAPES = ETAPES +1 ));Nvidia
(( ETAPES = ETAPES +1 ));Ati
Etapes "Internet ~~~~~~~" 13
(( ETAPES = ETAPES + 1 ));Opera
(( ETAPES = ETAPES + 1 ));Flash
(( ETAPES = ETAPES + 1 ));FileZilla
(( ETAPES = ETAPES + 1 ));ThunderBird
Etapes "Discussions ~~~~~" 16
(( ETAPES = ETAPES + 1 ));Amsn
(( ETAPES = ETAPES + 1 ));AmsnDev
(( ETAPES = ETAPES + 1 ));Xchat
Etapes "Téléchargements " 17
(( ETAPES = ETAPES + 1 ));Amule
Etapes "Multimédia ~~~~~" 22
(( ETAPES = ETAPES + 1 ));Mplayer
(( ETAPES = ETAPES + 1 ));Totem
(( ETAPES = ETAPES + 1 ));Audio
(( ETAPES = ETAPES + 1 ));Audacity
(( ETAPES = ETAPES + 1 ));Gravure
Etapes "Utilitaires ~~~~" 27
(( ETAPES = ETAPES + 1 ));Compression
(( ETAPES = ETAPES + 1 ));VirtualBox
(( ETAPES = ETAPES + 1 ));Gsynaptics
(( ETAPES = ETAPES + 1 ));NumLockX
(( ETAPES = ETAPES + 1 ));Glipper
Etapes "Graphisme ~~~~~~" 29
(( ETAPES = ETAPES + 1 ));EchoIcon
(( ETAPES = ETAPES + 1 ));CompizFusion
Etapes "Jeux ~~~~~~~~~~~" 33
(( ETAPES = ETAPES + 1 ));GamesMenus
(( ETAPES = ETAPES + 1 ));Wormux
(( ETAPES = ETAPES + 1 ));Poker3D
(( ETAPES = ETAPES + 1 ));TuxDroid
Rappel
echo -e
CouleurEcho "Voila c'est completement et totalement fini :-D" $blue
CouleurEcho "Pour des questions ou de l'aide sur Fedora et ses programmes rendez-vous sur http://www.fedora-fr.org" $blue
echo -e "############################################################################################"
Dites-moi ce que vous en pensez..
Ne soyez pas trop dur, c'est mon premier vrai script bash !!!
Merci