[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-clients-linux/DEBIAN/ -> preinst (source)

   1  #!/bin/bash
   2  
   3  set -e 
   4  
   5  
   6  # Fonction pour afficher des messages.
   7  function afficher ()
   8  {
   9      echo "$@"
  10  }
  11  
  12  
  13  # Fonction qui vérifie l'existence d'un répertoire dont
  14  # le chemin absolu est donné en unique argument.
  15  function verifier_existence_repertoire ()
  16  {
  17      if [ ! -d "$1" ]; then
  18          afficher "Désolé mais le répertoire \"$1\" n'existe pas."
  19          return 1
  20      else
  21          return 0
  22      fi
  23  }
  24  
  25  
  26  # Fonction qui vérifie l'existence d'un fichier (standard)
  27  # dont le chemin absolu est donné en unique argument.
  28  function verifier_existence_fichier ()
  29  {
  30      if [ ! -f "$1" ]; then
  31          afficher "Désolé mais le fichier \"$1\" n'existe pas."
  32          return 1
  33      else
  34          return 0
  35      fi
  36  }
  37  
  38  
  39  # Fonction qui vérifie si le paquet dont le nom est donné
  40  # en unique argument est bien installé.
  41  function verifier_installation_paquet ()
  42  {
  43      if ! dpkg --list "$1" | grep -qE "^ii[[:space:]]+$1"; then
  44          afficher "Désolé mais le paquet \"$1\" n'est pas installé."
  45          return 1
  46      else
  47          return 0
  48      fi
  49  }
  50  
  51  
  52  # Fonction qui vérifie l'existence d'un motif de regex donné
  53  # en premier argument dans le fichier dont le nom absolu est donné
  54  # en deuxième argument.
  55  function verifier_existence_motif ()
  56  {
  57      if [ $(grep -Ec "$1" "$2") != "1" ]; then
  58          afficher "Désolé mais la regex \"$1\" n'apparaît pas exactement" \
  59                   "une fois dans le fichier \"$2\"."
  60          return 1
  61      else
  62          return 0
  63      fi
  64  }
  65  
  66  
  67  # Fonction qui vérifie la présence d'un compte sur le système,
  68  # compte dont le login est donné en unique argument.
  69  function verifier_presence_compte ()
  70  {
  71      if ! getent passwd "$1" >/dev/null 2>&1; then
  72          afficher "Désolé mais le compte \"$1\" n'est pas présent sur le" \
  73                   "système alors qu'il est indispensable pour le bon" \
  74                   "fonction du paquet."
  75          return 1
  76      else
  77          return 0
  78      fi
  79  }
  80  
  81  
  82  # Fonction qui vérifie la présence d'un groupe sur le système,
  83  # groupe dont le nom est donné en unique argument.
  84  function verifier_presence_groupe ()
  85  {
  86      if ! getent group "$1" >/dev/null 2>&1; then
  87          afficher "Désolé mais le groupe \"$1\" n'est pas présent sur le" \
  88                   "système alors qu'il est indispensable pour le bon" \
  89                   "fonction du paquet."
  90          return 1
  91      else
  92          return 0
  93      fi
  94  }
  95  
  96  
  97  
  98  
  99  case "$1" in
 100  
 101      "install"|"upgrade")
 102          # Argument utilisé lors de l'installation du paquet.
 103          # Il faut vérifier que le système est prêt pour l'installation
 104          # du paquet.
 105          
 106          verifier_existence_repertoire "/home/netlogon"
 107          verifier_existence_repertoire "/etc/samba"
 108          
 109          # On laisse tomber ces vérifications car 1) c'est le travail du
 110          # fichier control du paquet et du gestionnaire de paquets et 2)
 111          # lors d'une mise à jour du paquet si le paquet se3 est lui aussi
 112          # mis à jour en même temps cela provoque une erreur car le test
 113          # considère à ce moment là que le paquet se3 n'est plus installé.
 114          # Donc ces vérifications sont inutiles et nuisibles.
 115          #verifier_installation_paquet "se3"
 116          #verifier_installation_paquet "se3-domain"
 117  
 118          fichier="/etc/se3/config_m.cache.sh"
 119          verifier_existence_fichier "$fichier"
 120          verifier_existence_motif '^se3ip=' "$fichier" 
 121  
 122          fichier="/etc/se3/config_l.cache.sh"
 123          verifier_existence_fichier "$fichier"
 124          verifier_existence_motif '^ldap_base_dn=' "$fichier"
 125          
 126          fichier="/etc/se3/config_c.cache.sh"
 127          verifier_existence_fichier "$fichier"
 128          verifier_existence_motif '^ntpserv=' "$fichier"
 129  
 130          verifier_presence_compte "admin"
 131          verifier_presence_groupe "admins"
 132          
 133          afficher "Le système est prêt pour l'installation du paquet."
 134          exit 0
 135      ;;
 136  
 137      *)
 138          # Argument non pris en charge. On ne fait rien avec 0 comme
 139          # valeur de retour pour ne pas stopper les processus dpkg.
 140          exit 0
 141      ;;
 142      
 143  esac
 144  
 145  
 146  


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