Gestion de tag pour en garantir la conservation.
authorProgfou <jean-christophe.andre@auf.org>
Fri, 14 Mar 2014 17:12:44 +0000 (13:12 -0400)
committerProgfou <jean-christophe.andre@auf.org>
Fri, 14 Mar 2014 17:12:44 +0000 (13:12 -0400)
Makefile
auf-inventaire-config
debian/auf-inventaire-client.postinst
debian/auf-inventaire-serveur.postinst
debian/changelog
debian/control

index be21c11..1103976 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -15,11 +15,5 @@ deb:
         echo -e "\n\n==> Lancer \"sudo debi\" pour tester l'installation.\n"
  
 release:
-       debuild -I.git -I*.ex -tc -sa -us -uc && ( \
-          debrelease --dput precise-test ; \
-          debrelease --dput lucid-test ; \
-          debrelease --dput wheezy-test ; \
-          debrelease --dput squeeze-test ; \
-          debrelease --dput lenny-test ; \
-          debrelease --dput etch-test \
-       )
+       debuild -I.git -I*.ex -tc -sa -us -uc && debrelease --dput wheezy-test
+       echo "=> paquet à déployer dans precise, lucid, wheezy, squeeze, lenny et etch"
index 0274fe1..8e182ac 100755 (executable)
@@ -1,6 +1,24 @@
 #!/bin/sh
 # script de mise à jour de la config' de FusionInventory
 # syntaxe : auf-inventaire-config [<tag>]
+DEFAULT_FILE="/etc/default/fusioninventory-agent"
+CONFIG_FILE="/etc/fusioninventory/agent.cfg"
+TAG_FILE="/etc/fusioninventory/tag"
+
+config_help() {
+  cat << __EOF__
+
+\e[1;31mAttention :\e[m \e[1mvous devez configurer un code d'inventaire !\e[m
+
+Pour ce faire, utilisez la commande suivante : \e[1;32mauf-inventaire-config PPn-Ixxxx\e[m
+où \e[1;36mPPn\e[m est le code d'implantation et \e[1;36mIxxxx\e[m est le numéro d'inventaire.
+(note : cette commande est à lancer sous \e[1;36mroot\e[m, ou via \e[1;36msudo\e[m)
+
+Exemple pour un portable à Montréal : \e[1;36mauf-inventaire-config CA1-I1359\e[m
+Exemple pour un serveur à Danang : \e[1;36mauf-inventaire-config VN2-I1014\e[m
+
+__EOF__
+}
 
 update_file() {
   file="$1" ; line="$2"
@@ -10,9 +28,58 @@ update_file() {
   echo "${line}" >> "${file}"
 }
 
-while read line
-do
-  update_file "/etc/fusioninventory/agent.cfg" "${line}"
+#
+# traitement de l'option de tag par défaut
+#
+if [ "$1" = "-d" -o "$1" = "--default-tag" ] ; then
+  default_tag="$2"
+  shift 2
+else
+  default_tag=""
+fi
+
+#
+# récupération du tag (fourni ou sauvé)
+#
+need_config="no"
+if [ -n "$1" ] ; then
+  # tag fourni en ligne de commande
+  tag="$1"
+elif [ -r "${TAG_FILE}" ] ; then
+  # récupération depuis son fichier dédié (à partir de la version 0.5)
+  tag="`cat "${TAG_FILE}"`"
+else
+  # récupération d'un tag non auf-* depuis la config' de FusionInventory
+  # (permet de retrouver le tag entré avant le passage en version 0.4)
+  tag="`awk '/^#?tag =/{if($3!=""&&$3!~/^auf-/){tag=$3}}END{print tag}' "${CONFIG_FILE}"`"
+  if [ -z "${tag}" ] ; then
+    # récupération d'un éventuel tag auf-* depuis la config' de FusionInventory
+    tag="`awk '/^#?tag =/{if($3!=""){tag=$3}}END{print tag}' "${CONFIG_FILE}"`"
+  fi
+fi
+# tag vide, mais indication d'un tag par défaut ?
+if [ -z "${tag}" -a -n "${default_tag}" ] ; then
+  # utilisation du tag par défaut
+  tag="${default_tag}"
+fi
+# tag vide ou non configuré (= toujours en auf-*) ?
+if [ -z "${tag}" ] || expr match "${tag}" '^auf-' >/dev/null ; then
+  # à configurer !
+  need_config="yes"
+fi
+# besoin d'aide ?
+if [ "${need_config}" != "no" ] ; then
+  config_help
+fi
+
+#echo "=> tag=[${tag}]"
+#exit 0
+
+#
+# mise en conformité de la configuration de FusionInventory
+#
+while read line ; do
+  update_file "${CONFIG_FILE}" "${line}"
 done << __EOF__
 server = https://glpi.auf.org/glpi/plugins/fusioninventory/
 no-task = deploy
@@ -22,20 +89,27 @@ no-httpd = 1
 logger = Syslog
 __EOF__
 
-if [ -n "$1" ]
-then
-  update_file "/etc/fusioninventory/agent.cfg" "tag = $1"
+#
+# configuration et sauvegarde du tag, s'il est présent
+#
+if [ -n "${tag}" ] ; then
+  update_file "${CONFIG_FILE}" "tag = ${tag}"
+  if [ ! -e "${TAG_FILE}" ] ; then
+    touch "${TAG_FILE}"
+    chmod --reference="${CONFIG_FILE}" "${TAG_FILE}"
+  fi
+  update_file "${TAG_FILE}" "${tag}"
 fi
 
-while read line
-do
- update_file "/etc/default/fusioninventory-agent" "${line}"
-done << __EOF__
-MODE=daemon
-__EOF__
+#
+# mise en mode démon de FusionInventory
+#
+update_file "${DEFAULT_FILE}" "MODE=daemon"
 
-if test -x /usr/sbin/service
-then
+#
+# redémarrage du service
+#
+if [ -x /usr/sbin/service ] ; then
   service fusioninventory-agent stop
   sleep 2
   service fusioninventory-agent start
index 6ec72c4..a0aa3f4 100644 (file)
@@ -19,7 +19,7 @@ set -e
 
 case "$1" in
     configure)
-        auf-inventaire-config auf-client || true
+        auf-inventaire-config --default-tag auf-client || true
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
index 388465f..e5d1a25 100644 (file)
@@ -19,7 +19,7 @@ set -e
 
 case "$1" in
     configure)
-        auf-inventaire-config auf-serveur || true
+        auf-inventaire-config --default-tag auf-serveur || true
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
index 09e29de..84d2b9d 100644 (file)
@@ -1,12 +1,25 @@
+auf-inventaire (0.5.1) unstable; urgency=low
+
+  * Notion de tag par défaut, pour ne pas écraser celui configuré.
+
+ -- Progfou <jean-christophe.andre@auf.org>  Fri, 14 Mar 2014 13:08:35 -0400
+
+auf-inventaire (0.5) unstable; urgency=low
+
+  * Nouvelle gestion du tag : sauvegarde dans un fichier dédié pour ne pas
+    le perdre lors d'une mise à jour ou réinstallation du paquet.
+
+ -- Progfou <jean-christophe.andre@auf.org>  Fri, 14 Mar 2014 11:40:10 -0400
+
 auf-inventaire (0.4) unstable; urgency=low
 
-  * Dépendances sur smartmontools (client+serveur) et read-edid (client)
+  * Dépendances sur smartmontools (client+serveur) et read-edid (client).
 
  -- Progfou <jean-christophe.andre@auf.org>  Fri, 06 Dec 2013 17:15:56 -0500
 
 auf-inventaire (0.3.1) unstable; urgency=low
 
-  * Support des anciennes distributions Debian (ex. : Lenny)
+  * Support des anciennes distributions Debian (ex. : Lenny).
 
  -- Progfou <jean-christophe.andre@auf.org>  Fri, 22 Nov 2013 19:27:19 -0500
 
index 6a2dbae..84fa9c9 100644 (file)
@@ -10,8 +10,8 @@ Vcs-Browser: http://git.auf.org/?p=auf-inventaire.git;a=summary
 
 Package: auf-inventaire-client
 Architecture: all
-Depends: ${misc:Depends}, fusioninventory-agent, libio-socket-ssl-perl,
- smartmontools, read-edid
+Depends: ${misc:Depends}, fusioninventory-agent, libio-socket-ssl-perl
+Recommends: read-edid, smartmontools
 Conflicts: auf-inventaire-serveur
 Description: mise en place de l'inventaire automatique d'un client
  Ce paquet permet l'installation et la configuration de l'agent
@@ -22,8 +22,8 @@ Description: mise en place de l'inventaire automatique d'un client
 
 Package: auf-inventaire-serveur
 Architecture: all
-Depends: ${misc:Depends}, fusioninventory-agent, libio-socket-ssl-perl,
- smartmontools
+Depends: ${misc:Depends}, fusioninventory-agent, libio-socket-ssl-perl
+Recommends: read-edid, smartmontools
 Conflicts: auf-inventaire-client
 Description: mise en place de l'inventaire automatique d'un serveur
  Ce paquet permet l'installation et la configuration de l'agent