[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 # Script destine a recuperer l'archive PlayOnLinux et mettre en place le necessaire sur SE3. 4 # 5 # Auteur: Stephane Boireau 6 # Derniere modification: 25/01/2014 7 8 url_archive="http://wawadeb.crdp.ac-caen.fr/iso/tmp/multiboot/PlayOnLinux.tar.gz" 9 url_md5="http://wawadeb.crdp.ac-caen.fr/iso/tmp/multiboot/PlayOnLinux.tar.gz.md5" 10 11 dir_client_linux="/home/netlogon/clients-linux" 12 dest_prog=$dir_client_linux}/Progs 13 logon_perso=$dir_client_linux}/bin/logon_perso 14 15 #Couleurs 16 COLTITRE="\033[1;35m" # Rose 17 COLPARTIE="\033[1;34m" # Bleu 18 19 COLTXT="\033[0;37m" # Gris 20 COLCHOIX="\033[1;33m" # Jaune 21 COLDEFAUT="\033[0;33m" # Brun-jaune 22 COLSAISIE="\033[1;32m" # Vert 23 24 COLCMD="\033[1;37m" # Blanc 25 26 COLERREUR="\033[1;31m" # Rouge 27 COLINFO="\033[0;36m" # Cyan 28 29 DEBUG="yes" 30 31 32 function add_fonc_logon_perso() { 33 34 echo -e "$COLTXT" 35 echo "Ajout d une fonction tester_et_mettre_a_jour_PlayOnLinux_sur_le_client() 36 dans le logon_perso..." 37 echo -e "$COLCMD\c" 38 echo ' 39 function tester_et_mettre_a_jour_PlayOnLinux_sur_le_client() { 40 PlayOnLinux_dir=/opt/PlayOnLinux 41 PlayOnLinux_parent_dir=$(dirname $PlayOnLinux_dir}) 42 43 if appartient_au_parc "PlayOnLinux" "$NOM_HOTE"; then 44 mkdir -p $PlayOnLinux_parent_dir} 45 46 mise_a_jour_requise="n" 47 if [ ! -e "$PlayOnLinux_dir}/.VERSION" ]; then 48 mise_a_jour_requise="y" 49 else 50 t=$(diff -abB /mnt/netlogon/Progs/PlayOnLinux.VERSION $PlayOnLinux_dir}/.VERSION) 51 if [ -n "$t" ]; then 52 mise_a_jour_requise="y" 53 fi 54 fi 55 56 if [ "$mise_a_jour_requise" = "y" ]; then 57 echo "La mise a jour de PlayOnLinux est requise." 58 cd $PlayOnLinux_parent_dir} 59 60 # Mise en reserve d une ancienne version si elle existe 61 suffixe_tmp="_tmp_$(date +%Y%m%d%H%M%S)" 62 if [ -e $PlayOnLinux_dir} ]; then 63 echo "Mise en reserve de la version anterieure de PlayOnLinux." 64 mv $PlayOnLinux_dir} $PlayOnLinux_dir}.$suffixe_tmp} 65 fi 66 67 # Copie et desarchivage 68 echo "Copie et desarchivage de PlayOnLinux." 69 cp -fr /mnt/netlogon/Progs/PlayOnLinux.tar.gz $PlayOnLinux_parent_dir}/ && tar -xzf PlayOnLinux.tar.gz 70 if [ "$?" = "0" ]; then 71 # Menage sur l ancienne version 72 if [ -e $PlayOnLinux_dir}.$suffixe_tmp} ]; then 73 echo "Suppression de la version anterieure de PlayOnLinux..." 74 rm -fr $PlayOnLinux_dir}.$suffixe_tmp} 75 fi 76 77 echo "Correction des droits et proprios..." 78 chown -R root:root $PlayOnLinux_dir} 79 chmod +x $PlayOnLinux_dir}/bin/adapter_le_modele_a_l_utilisateur_courant.sh 80 81 # Mise en place du fichier de version 82 echo "Mise en place du fichier de version..." 83 cp -f /mnt/netlogon/Progs/PlayOnLinux.VERSION $PlayOnLinux_dir}/.VERSION 84 else 85 # Menage 86 rm -fr $PlayOnLinux_dir} 87 88 # Retablissement de la version precedente: 89 echo "Retablissement de la version precedente..." 90 if [ -e $PlayOnLinux_dir}.$suffixe_tmp} ]; then 91 mv $PlayOnLinux_dir}.$suffixe_tmp} $PlayOnLinux_dir} 92 fi 93 fi 94 95 # Menage 96 rm -f PlayOnLinux.tar.gz 97 fi 98 fi 99 } 100 ' >> $logon_perso 101 102 } 103 104 function patch1_logon_perso() { 105 echo "Patch 1 de $logon_perso " 106 sed -i 's#\(monter_partage "//$SE3/homes/Docs".*\)#\1\n "$REP_HOME/Docs" \\\n "$REP_HOME/Documents" \\\n#' $logon_perso 107 108 } 109 110 function patch2_logon_perso() { 111 echo "Patch 2 de $logon_perso " 112 sed -i 's|\(# Montage du partage « admhomes.*\)|if [ -e /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh ]; then\n chmod +x /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh\n /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh $LOGIN\n fi\n tester_et_mettre_a_jour_PlayOnLinux_sur_le_client\n\1|' $logon_perso 113 114 } 115 116 117 cd $dir_client_linux} 118 tmp="tmp_$(date +%Y%m%d%H%M%S)" 119 mkdir -p $tmp} 120 121 if [ "$DEBUG" != "yes" ]; then 122 cd $tmp} 123 fi 124 125 echo -e "$COLTXT" 126 echo "Telechargement de PlayOnLinux..." 127 echo -e "$COLCMD\c" 128 if [ ! -e PlayOnLinux.tar.gz ]; then 129 wget $url_archive 130 else 131 echo archive presente en local 132 fi 133 134 if [ "$?" != "0" ]; then 135 echo -e "$COLERREUR" 136 echo "ERREUR lors du telechargement de $url_archive" 137 sleep 2 138 echo -e "$COLTXT" 139 exit 140 fi 141 142 echo -e "$COLTXT" 143 echo "Telechargement de la somme MD5 associee..." 144 echo -e "$COLCMD\c" 145 wget $url_md5 146 if [ "$?" != "0" ]; then 147 echo -e "$COLERREUR" 148 echo "ERREUR lors du telechargement de $url_md5" 149 sleep 2 150 echo -e "$COLTXT" 151 exit 152 fi 153 154 t=$(md5sum PlayOnLinux.tar.gz) 155 t2=$(cat PlayOnLinux.tar.gz.md5) 156 if [ "$t" != "$t" ]; then 157 echo -e "$COLERREUR" 158 echo "ERREUR La somme MD5 ne correspond pas." 159 rm -fr $tmp} 160 sleep 2 161 echo -e "$COLTXT" 162 exit 163 else 164 echo -e "$COLTXT" 165 echo "Mise en place de l archive..." 166 echo -e "$COLCMD\c" 167 mkdir -p $dest_prog 168 cp PlayOnLinux.tar.gz $dest_prog/ 169 cp PlayOnLinux.tar.gz.md5 $dest_prog/PlayOnLinux.VERSION 170 cd $dir_client_linux} 171 rm -fr $tmp} 172 fi 173 174 175 echo "sauvegarde de la version actulle de $logon_perso" 176 cp $logon_perso $logon_perso-$(date +%Y%m%d%H%M%S) 177 178 179 180 if [ -z "$(grep "\$REP_HOME/Docs" $logon_perso)" ]; then 181 patch1_logon_perso 182 fi 183 184 if [ -z "$(grep "/opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh" $logon_perso)" ]; then 185 patch2_logon_perso 186 fi 187 188 if [ -z "$(grep "function tester_et_mettre_a_jour_PlayOnLinux_sur_le_client" $logon_perso)" ]; then 189 add_fonc_logon_perso 190 fi 191 192 bash /home/netlogon/clients-linux/.defaut/reconfigure.bash 193 194 echo "Creation du script d'installation automatique de PlayOnLinux sur les clients" 195 UNEFOISDIR="/home/netlogon/clients-linux/unefois" 196 197 198 if [ -e $UNEFOISDIR/PAUSE ]; then 199 mv $UNEFOISDIR/PAUSE $UNEFOISDIR/NO-PAUSE 200 fi 201 202 mkdir -p "$UNEFOISDIR/^*" 203 echo " 204 #!/bin/bash 205 wget -q http://deb.playonlinux.com/public.gpg -O- | apt-key add - 206 wget http://deb.playonlinux.com/playonlinux_wheezy.list -O /etc/apt/sources.list.d/playonlinux.list 207 apt-get update 208 apt-get install playonlinux -y 209 " > "$UNEFOISDIR/^*/install-playonlinux.unefois" 210 211 echo -e "$COLTXT" 212 echo -e "Ce qu il reste a faire: 213 - Creer un parc 'PlayOnLinux' sur le SE3 et y ajouter la machine cliente Linux." 214 # - Completer la fonction ouverture_perso() dans le 215 # ${COLINFO}$logon_perso${COLTXT} 216 # pour y ajouter dans le montage de Mes documents les dossiers 217 # Docs et Documents. 218 # Le premier (${COLINFO}Docs${COLTXT}) est explicitement utilise dans le script 219 # ${COLINFO}adapter_le_modele_a_l_utilisateur_courant.sh${COLTXT} 220 # execute cote client lors du login. 221 # Il faut donc quelque chose comme:${COLINFO}" 222 # echo ' 223 # monter_partage "//$SE3/homes/Docs" "Docs" \ 224 # "$REP_HOME/Docs" \ 225 # "$REP_HOME/Documents" \ 226 # "$REP_HOME/Documents de $LOGIN sur le réseau" \ 227 # "$REP_HOME/Bureau/Documents de $LOGIN sur le réseau" 228 # ' 229 # echo -e "${COLTXT} 230 # - Ajouter en fin de fonction ouverture_perso() du logon_perso 231 # ${COLINFO} 232 # tester_et_mettre_a_jour_PlayOnLinux_sur_le_client 233 # 234 # if [ -e /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh ]; then 235 # chmod +x /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh 236 # /opt/PlayOnLinux/bin/adapter_le_modele_a_l_utilisateur_courant.sh \$LOGIN 237 # fi 238 # ${COLTXT} 239 # - Et enfin lancer 240 # ${COLINFO} dpkg-reconfigure se3-clients-linux${COLINFO}" 241 242
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |