expr fait un test ancré en début de chaîne…
[auf-inventaire.git] / auf-inventaire-config
... / ...
CommitLineData
1#!/bin/sh
2# script de mise à jour de la config' de FusionInventory
3# syntaxe : auf-inventaire-config [<tag>]
4DEFAULT_FILE="/etc/default/fusioninventory-agent"
5CONFIG_FILE="/etc/fusioninventory/agent.cfg"
6TAG_FILE="/etc/fusioninventory/tag"
7
8config_help() {
9 cat << __EOF__
10
11\e[1;31mAttention :\e[m \e[1mvous devez configurer un code d'inventaire !\e[m
12
13Pour ce faire, utilisez la commande suivante : \e[1;32mauf-inventaire-config PPn-Ixxxx\e[m
14\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
17Exemple pour un portable à Montréal : \e[1;36mauf-inventaire-config CA1-I1359\e[m
18Exemple pour un serveur à Danang : \e[1;36mauf-inventaire-config VN2-I1014\e[m
19
20__EOF__
21}
22
23update_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#
34if [ "$1" = "-d" -o "$1" = "--default-tag" ] ; then
35 default_tag="$2"
36 shift 2
37else
38 default_tag=""
39fi
40
41#
42# récupération du tag (fourni ou sauvé)
43#
44need_config="no"
45if [ -n "$1" ] ; then
46 # tag fourni en ligne de commande
47 tag="$1"
48elif [ -r "${TAG_FILE}" ] ; then
49 # récupération depuis son fichier dédié (à partir de la version 0.5)
50 tag="`cat "${TAG_FILE}"`"
51else
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
59fi
60# tag vide, mais indication d'un tag par défaut ?
61if [ -z "${tag}" -a -n "${default_tag}" ] ; then
62 # utilisation du tag par défaut
63 tag="${default_tag}"
64fi
65# tag vide ou non configuré (= toujours en auf-*) ?
66if [ -z "${tag}" ] || expr match "${tag}" 'auf-' >/dev/null ; then
67 # à configurer !
68 need_config="yes"
69fi
70# besoin d'aide ?
71if [ "${need_config}" != "no" ] ; then
72 config_help
73fi
74
75#echo "=> tag=[${tag}]"
76#exit 0
77
78#
79# mise en conformité de la configuration de FusionInventory
80#
81while read line ; do
82 update_file "${CONFIG_FILE}" "${line}"
83done << __EOF__
84server = https://glpi.auf.org/glpi/plugins/fusioninventory/
85no-task = deploy
86#ca-cert-file = /etc/ssl/certs/AUF-RACINE+BA.pem
87no-ssl-check = 1
88no-httpd = 1
89logger = Syslog
90__EOF__
91
92#
93# configuration et sauvegarde du tag
94#
95if [ -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
104fi
105
106#
107# mise en mode démon de FusionInventory
108#
109update_file "${DEFAULT_FILE}" "MODE=daemon"
110
111#
112# redémarrage du service
113#
114if [ -x /usr/sbin/service ] ; then
115 service fusioninventory-agent stop
116 sleep 2
117 service fusioninventory-agent start
118else # support des anciennes distributions Debian (ex. : Lenny)
119 invoke-rc.d fusioninventory-agent stop
120 sleep 2
121 invoke-rc.d fusioninventory-agent start
122fi
123
124echo "Envoi immédiat des informations d'inventaire..."
125exec fusioninventory-agent --no-fork --logger=Stderr