[ Index ]

PHP Cross Reference of GASELL SVN Trunk

title

Body

[close]

/gasell/ -> obtain_external.sh (source)

   1  #! /bin/bash
   2  
   3  # Ce script permet de recuperer les differentes librairies
   4  # externes sur lesquelles GASELL se base
   5  # Il s'occuppe egalement de les installer dans le repertoire
   6  # external de l'application
   7  
   8  
   9  # Fonction permettant de preparer le repertoire
  10  # qui va accueillir les fichiers
  11  function prepare_target {
  12      # on recupere les arguments
  13      target=$1
  14  
  15      # on regarde si qqchose d'equivalent n'existerait pas deja
  16      if [ -d $target} ]; then
  17      echo "$target} existe deja !"
  18      echo "Voulez-vous : "
  19      echo "1- Supprimer le repertoire et continuer"
  20      echo "2- Conserver la version presente"
  21      echo -n "Votre choix : "
  22      read rep
  23      
  24      # Que faire ?
  25      case $rep in
  26          1)
  27          echo "Suppression du repertoire...$target}"
  28          echo "Etes-vous sur ? (N/o) "
  29          read yesno
  30          if [ $yesno == 'O' ]; then
  31              rm -Rf $target}
  32              echo "$target} supprime !"
  33              # et un nouveau tout propre
  34              mkdir $target}
  35              force_install=1
  36          else
  37              echo "$target} conserve !"
  38          fi
  39          ;;
  40          2)
  41          echo "Utilisation de $target} ..."
  42          force_install=1
  43          ;;
  44          *)
  45          echo "Dependance suivante ..."
  46          force_install=0
  47          ;;
  48      esac
  49      else
  50      echo "Creation de $target}..."
  51      mkdir $target}
  52      force_install=1
  53      fi
  54  
  55      return $force_install
  56  }
  57  
  58  
  59  
  60  # on recupere le path du depot Gasell
  61  if [ $(dirname $0) != '.' ]; then
  62      GASELL_REPOS=$(pwd)/$(dirname $0)
  63  else
  64      GASELL_REPOS=$(pwd)
  65  fi
  66  
  67  # maintenant on recherche le repertoire external dans ce depot
  68  GASELL_EXTERNAL=$(find $GASELL_REPOS} -type d -name "external" | head -n 1)
  69  EXT_TMP="$GASELL_EXTERNAL}/tmp"
  70  
  71  # Est-ce que le repertoire temporaire existe ?
  72  if [ ! -d $EXT_TMP} ]; then
  73      mkdir $EXT_TMP}
  74  fi
  75  
  76  # maintenant on recupere la liste des differentes dependances
  77  # dont GASELL peut avoir besoin pour fonctionner
  78  for p in $(cat $GASELL_REPOS/DEPENDS | grep -v \#); do
  79      dep_name=$(echo $p | cut -d'|' -f 1)
  80      dep_url=$(echo $p | cut -d'|' -f 2)
  81      dep_dir=$(echo $p | cut -d'|' -f 3)
  82      dep_dest=$GASELL_EXTERNAL}/$dep_dir}
  83      dep_file=$(basename $dep_url})
  84      dep_tmp=$EXT_TMP}/$dep_file}
  85      dep_ext=$(echo $dep_file} | sed 's/^.*\.\(tar\.\|t\)\([a-z]*\)$/\2/')
  86  
  87      # Presentation de la dependance
  88      echo "====== Dependance $dep_name} ======"
  89      echo "De : $dep_url}"
  90      echo "Vers : $dep_dest}"
  91      echo ""
  92  
  93      # Preparation de la destination
  94      prepare_target $dep_dest
  95  
  96      # Continue-t-on l'installation ?
  97      if [ $? == 1 ]; then
  98          if [ -f $dep_tmp} ]; then
  99          echo "$dep_tmp} existe deja"
 100          echo "Inutile de le telecharger de nouveau"
 101          else
 102          # on telecharge le fichier dans le repertoire external
 103          echo "Recuperation de $dep_name} dans $EXT_TMP}"
 104          (cd $EXT_TMP}; wget -t 3 -o /dev/null $dep_url})
 105          fi
 106  
 107          # on l'extrait
 108          echo "Extraction de $dep_name}"
 109          
 110          # choix de la compression
 111          case $dep_ext} in
 112          'bz')
 113              tar --strip-components 1 -jxf $dep_tmp} -C $dep_dest}
 114              ;;
 115          *)
 116              tar --strip-components 1 -zxf $dep_tmp} -C $dep_dest}
 117              ;;
 118          esac
 119          
 120          # Tout devrait etre ok
 121          echo "$dep_name} installee !"
 122  
 123      else
 124          echo "Installation de $dep_name} annulee !"
 125      fi
 126  done


Generated: Tue Jan 6 01:17:25 2009 Cross-referenced by PHPXref 0.7