Browse Source

"MaJ exp_dummy_script.sh + msg"

Doug Le Tough 3 years ago
parent
commit
d6a7251d1e
2 changed files with 170 additions and 0 deletions
  1. 168
    0
      bin/exp_dummy_script.sh
  2. 2
    0
      msg/exp_dummy_script.msg

+ 168
- 0
bin/exp_dummy_script.sh View File

@@ -0,0 +1,168 @@
1
+#!/bin/bash
2
+#------------------------------------------------------------------------------------------------------------------
3
+# Script         : exp_dummy_script.sh
4
+# Auteur         : Doug Le Tough
5
+# Date           : 14-08-2017
6
+# Version        : 1.2.0
7
+# Objet          : Script d'exemple qui liste les VM définies dans son fichier de configuration
8
+#
9
+#------------------------------------------------------------------------------------------------------------------
10
+# Mise a jour :
11
+#
12
+# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
13
+# 1.2.0  14/08/2017   - Doug Le Tough   - Evo : Ajout de l'option -gen_error
14
+#
15
+#------------------------------------------------------------------------------------------------------------------
16
+# Dependances : Aucune
17
+#
18
+#------------------------------------------------------------------------------------------------------------------
19
+# Liste des options et arguments:
20
+#
21
+# @OPT: f:list_vm:list_vm:1/1:true:::
22
+# @OPT: f:gen_error:gen_error:1/1:false:::
23
+#
24
+#------------------------------------------------------------------------------------------------------------------
25
+# Liste des paramètres de configuration:
26
+#
27
+# DUMMY_VAR="Variable bidon pour test"
28
+# TETALAB_VM[0]=sousetsukenlocal.tetalab.org
29
+# TETALAB_VM[1]=jimmy.local.tetalab.org
30
+# TETALAB_VM[2]=billy.local.tetalab.org
31
+# TETALAB_VM[3]=marian.local.tetalab.org
32
+# TETALAB_VM[4]=sonny.local.tetalab.org
33
+#
34
+#------------------------------------------------------------------------------------------------------------------
35
+# Liste des erreurs:
36
+#
37
+# 2 | erreur | stop | ${ERROR}
38
+# 3 | erreur | exec | rm_temp_dir
39
+#
40
+#------------------------------------------------------------------------------------------------------------------
41
+##
42
+## Syntaxe :
43
+## --------
44
+##
45
+##  prompt> exp_dummy_script.sh [-list_vm false] [ -gen_error true ]
46
+##
47
+##  ex:
48
+##       exp_dummy_script.sh -list_vm false -gen_error true
49
+##
50
+## Prérequis:
51
+## ----------
52
+## - Le script doit être executé par l'utilisateur asr
53
+##
54
+## Fonctionnement:
55
+## ---------------
56
+## Affiche sa configuration et liste les VM listées dans son fichier de configuration (TETALAB_VM[*]).
57
+##
58
+## Si l'option -list_vm est positionnée à false, le script ne fait qu'afficher sa configuration.
59
+## Par défaut list_vm vaut true.
60
+##
61
+## Si l'option -gen_error  est positionnée à true, le script génèrera une erreur. Le but de cette option
62
+## étant de montrer la gestion des erreurs. Par défaut gen_error vaut false.
63
+##
64
+#------------------------------------------------------------------------------------------------------------------
65
+#                     Initialisation de l'environement
66
+#------------------------------------------------------------------------------------------------------------------
67
+
68
+if [ "${USER}" != "asr" ]; then
69
+  ERROR="Seul l'utilisateur asr peut utiliser ce script"
70
+  echo -e "\033[91m${ERROR}\033[0m"
71
+  exit 1
72
+fi
73
+
74
+source /etc/profile.d/tetalab.sh
75
+
76
+if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
77
+  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
78
+  echo "Arrêt du script par sécurité"
79
+  exit 250
80
+fi
81
+
82
+source ${NC_EXPL_CFG}/init.conf
83
+
84
+#------------------------------------------------------------------------------------------------------------------
85
+#  Fonctions
86
+#------------------------------------------------------------------------------------------------------------------
87
+
88
+function check_config
89
+{
90
+  fct_message "Vérification de la configuration:" -color jaune
91
+  if [ ! -r ${SH_FICCFG} ]; then
92
+    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
93
+    fct_erreur 2
94
+  fi
95
+  if [ ${#DUMMY_VAR} -eq 0 ]; then
96
+    ERROR="Paramètre manquant ou vide dans le fichier de configuration: DUMMY_VAR"
97
+    fct_erreur 2
98
+  fi
99
+  if [ ${#TETALAB_VM[*]} -eq 0 ]; then
100
+    ERROR="Aucune VM définie dans le fichier de configuration"
101
+    fct_erreur 2
102
+  fi
103
+  fct_message "  * DUMMY_VAR: ${DUMMY_VAR}"
104
+  INDEX=0
105
+  for VM in ${TETALAB_VM[@]}
106
+  do
107
+    fct_message "  * VM[${INDEX}]: ${VM}"
108
+    INDEX=$(( INDEX+1 ))
109
+  done
110
+}
111
+
112
+function mk_temp_dir {
113
+  TMP_DIR="${NC_EXPL_TMP}/${SH_PROG}_${SH_SESSION_ID}"
114
+  fct_message "Création du répertoire temporaire ${TMP_DIR}" -color jaune
115
+  mkdir -p ${TMP_DIR}
116
+  RET_VAL=$?
117
+  if [ ! ${RET_VAL} -eq 0 ]; then
118
+    ERROR="Erreur lors de la création du répertoire"
119
+    fct_erreur 2
120
+  fi
121
+}
122
+
123
+function rm_temp_dir {
124
+  fct_message "Suppression du répertoire temporaire ${TMP_DIR}" -color jaune
125
+  rm -Rf ${TMP_DIR}
126
+  RET_VAL=$?
127
+  if [ ! ${RET_VAL} -eq 0 ]; then
128
+    ERROR="Erreur lors de la suppression du répertoire"
129
+    fct_erreur 2
130
+  fi
131
+}
132
+
133
+function gen_error {
134
+  if [ "${gen_error}" == "true" ]; then
135
+    fct_message "Génération d'une erreur volontaire:" -color jaune
136
+    ERROR="GURU MEDITATION #00001337.00713705"
137
+    fct_message "  - Erreur: ${ERROR}" -color vert
138
+    # On supprime le répertoire temporaire en passant
139
+    # par l'erreur 3
140
+    fct_erreur 3
141
+    # On quitte sur l'affichage de l'erreur et un exit code 2
142
+    fct_erreur 2
143
+  fi
144
+}
145
+
146
+function list_vm
147
+{
148
+  if [ "${list_vm}" == "true" ]; then
149
+    fct_message "Liste des VM définies dans ${SH_FICCFG}:" -color jaune
150
+    INDEX=0
151
+    for VM in ${TETALAB_VM[@]}
152
+    do
153
+      fct_message "  * VM[${INDEX}]: ${VM}"
154
+      INDEX=$(( INDEX+1 ))
155
+    done
156
+  fi
157
+}
158
+
159
+#------------------------------------------------------------------------------------------------------------------
160
+# Traitement
161
+#------------------------------------------------------------------------------------------------------------------
162
+
163
+check_config
164
+mk_temp_dir
165
+list_vm
166
+gen_error
167
+rm_temp_dir
168
+fct_erreur 0

+ 2
- 0
msg/exp_dummy_script.msg View File

@@ -0,0 +1,2 @@
1
+2 | erreur | stop | ${ERROR}
2
+3 | erreur | exec | rm_temp_dir

Loading…
Cancel
Save