Stretch par défaut maintenant !
[auf-inventaire.git] / auf-inventaire-config
1 #!/bin/sh
2 # script de mise à jour de la config' de FusionInventory
3 # syntaxe : auf-inventaire-config [<tag>]
4 DEFAULT_FILE="/etc/default/fusioninventory-agent"
5 CONFIG_FILE="/etc/fusioninventory/agent.cfg"
6 TAG_FILE="/etc/fusioninventory/tag"
7
8 config_help() {
9   cat << __EOF__
10
11 \e[1;31mAttention :\e[m \e[1mvous devez configurer un code d'inventaire !\e[m
12
13 Pour ce faire, utilisez la commande suivante : \e[1;32mauf-inventaire-config PPn-Ixxxx\e[m
14 où \e[1;36mPPn\e[m est le code d'implantation et \e[1;36mIxxxx\e[m est le numéro d'inventaire.
15 (note : cette commande est à lancer sous \e[1;36mroot\e[m, ou via \e[1;36msudo\e[m)
16
17 Exemple pour un portable à Montréal : \e[1;36mauf-inventaire-config CA1-I1359\e[m
18 Exemple pour un serveur à Danang : \e[1;36mauf-inventaire-config VN2-I1014\e[m
19
20 __EOF__
21 }
22
23 update_file() {
24   file="$1" ; line="$2"
25   grep -q -x "${line}" "${file}" && return
26   left_part="`echo "${line}" | cut -d'=' -f1`="
27   sed -i "/^${left_part}/s/^/#/" "${file}"
28   echo "${line}" >> "${file}"
29 }
30
31 #
32 # traitement de l'option de tag par défaut
33 #
34 if [ "$1" = "-d" -o "$1" = "--default-tag" ] ; then
35   default_tag="$2"
36   shift 2
37 else
38   default_tag=""
39 fi
40
41 #
42 # récupération du tag (fourni ou sauvé)
43 #
44 need_config="no"
45 if [ -n "$1" ] ; then
46   # tag fourni en ligne de commande
47   tag="$1"
48 elif [ -r "${TAG_FILE}" ] ; then
49   # récupération depuis son fichier dédié (à partir de la version 0.5)
50   tag="`cat "${TAG_FILE}"`"
51 else
52   # récupération d'un tag non auf-* depuis la config' de FusionInventory
53   # (permet de retrouver le tag entré avant le passage en version 0.4)
54   tag="`awk '/^#?tag =/{if($3!=""&&$3!~/^auf-/){tag=$3}}END{print tag}' "${CONFIG_FILE}"`"
55   if [ -z "${tag}" ] ; then
56     # récupération d'un éventuel tag auf-* depuis la config' de FusionInventory
57     tag="`awk '/^#?tag =/{if($3!=""){tag=$3}}END{print tag}' "${CONFIG_FILE}"`"
58   fi
59 fi
60 # tag vide, mais indication d'un tag par défaut ?
61 if [ -z "${tag}" -a -n "${default_tag}" ] ; then
62   # utilisation du tag par défaut
63   tag="${default_tag}"
64 fi
65 # tag vide ou non configuré (= toujours en auf-*) ?
66 if [ -z "${tag}" ] || expr match "${tag}" 'auf-' >/dev/null ; then
67   # à configurer !
68   need_config="yes"
69 fi
70 # besoin d'aide ?
71 if [ "${need_config}" != "no" ] ; then
72   config_help
73 fi
74
75 #echo "=> tag=[${tag}]"
76 #exit 0
77
78 #
79 # mise en conformité de la configuration de FusionInventory
80 #
81 while read line ; do
82   update_file "${CONFIG_FILE}" "${line}"
83 done << __EOF__
84 server = https://glpi.auf.org/glpi/plugins/fusioninventory/
85 no-task = deploy
86 ca-cert-dir = /etc/ssl/certs
87 no-ssl-check = 0
88 no-httpd = 1
89 logger = Syslog
90 __EOF__
91
92 #
93 # configuration et sauvegarde du tag
94 #
95 if [ -n "${tag}" ] ; then
96   update_file "${CONFIG_FILE}" "tag = ${tag}"
97   if [ ! -e "${TAG_FILE}" ] ; then
98     touch "${TAG_FILE}"
99     chmod --reference="${CONFIG_FILE}" "${TAG_FILE}"
100   fi
101   if [ "${tag}" != "`cat "${TAG_FILE}"`" ] ; then
102     echo "${tag}" > "${TAG_FILE}"
103   fi
104 fi
105
106 #
107 # mise en mode démon de FusionInventory
108 #
109 update_file "${DEFAULT_FILE}" "MODE=daemon"
110
111 #
112 # redémarrage du service
113 #
114 if [ -x /usr/sbin/service ] ; then
115   service fusioninventory-agent stop
116   sleep 2
117   service fusioninventory-agent start
118 else # support des anciennes distributions Debian (ex. : Lenny)
119   invoke-rc.d fusioninventory-agent stop
120   sleep 2
121   invoke-rc.d fusioninventory-agent start
122 fi
123
124 echo "Envoi immédiat des informations d'inventaire..."
125 exec fusioninventory-agent --no-fork --logger=Stderr