[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
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 |