[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/tftp-tools/install-clients-linux/sources/ -> mise_en_place_win_on_linux_se3.sh (source)

   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  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1