From 9b50654505767a480309f5a196ac65fc5590c346 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 17 Jan 2017 16:38:12 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Parsing=20level=20dissoci=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sans faire une fonction j'ai juste dissocié le parsing du level du reste de la boucle. Mais j'ai pas testé :D C'est en cours... --- package_check.sh | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/package_check.sh b/package_check.sh index 6161727..82dae23 100755 --- a/package_check.sh +++ b/package_check.sh @@ -538,7 +538,6 @@ INIT_VAR() { IN_PROCESS=0 MANIFEST=0 CHECKS=0 - IN_LEVELS=1 auto_remove=1 install_pass=0 note=0 @@ -598,6 +597,19 @@ if [ "$check_file" -eq 1 ] then # Si le fichier check_process est trouvé ## Parsing du fichier check_process de manière séquentielle. echo "Parsing du fichier check_process" + IN_LEVELS=0 + while read <&4 LIGNE + do # Parse les indications de niveaux d'app avant de parser les tests + if echo "$LIGNE" | grep -q "^;;; Levels"; then # Définition des variables de niveaux + IN_LEVELS=1 + fi + if [ "$IN_LEVELS" -eq 1 ] + then + if echo "$LIGNE" | grep -q "Level "; then # Définition d'un niveau + level[$(echo "$LIGNE" | cut -d '=' -f1 | cut -d ' ' -f2)]=$(echo "$LIGNE" | cut -d '=' -f2) + fi + fi + done 4< "$APP_CHECK/check_process" while read <&4 LIGNE do LIGNE=$(echo $LIGNE | sed 's/^ *"//g') # Efface les espaces en début de ligne @@ -608,12 +620,7 @@ then # Si le fichier check_process est trouvé if echo "$LIGNE" | grep -q "^auto_remove="; then # Indication d'auto remove auto_remove=$(echo "$LIGNE" | cut -d '=' -f2) fi - if echo "$LIGNE" | grep -q "^;;; Levels"; then # Définition des variables de niveaux - IN_PROCESS=0 - MANIFEST=0 - CHECKS=0 - IN_LEVELS=1 - elif echo "$LIGNE" | grep -q "^;;"; then # Début d'un scénario de test + if echo "$LIGNE" | grep -q "^;;" && ! echo "$LIGNE" | grep -q "^;;;"; then # Début d'un scénario de test if [ "$IN_PROCESS" -eq 1 ]; then # Un scénario est déjà en cours. Donc on a atteind la fin du scénario. TESTING_PROCESS TEST_RESULTS @@ -628,12 +635,7 @@ then # Si le fichier check_process est trouvé CHECKS=0 IN_LEVELS=0 fi - if [ "$IN_LEVELS" -eq 1 ] - then - if echo "$LIGNE" | grep -q "Level "; then # Définition d'un niveau - level[$(echo "$LIGNE" | cut -d '=' -f1 | cut -d ' ' -f2)]=$(echo "$LIGNE" | cut -d '=' -f2) - fi - elif [ "$IN_PROCESS" -eq 1 ] + if [ "$IN_PROCESS" -eq 1 ] then # Analyse des arguments du scenario de test if echo "$LIGNE" | grep -q "^; Manifest"; then # Arguments du manifest MANIFEST=1 From 6448c4f6f6bb71112c2e85aba77b9bea142f0fd9 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 17 Jan 2017 16:52:41 +0100 Subject: [PATCH 2/2] Ignore les lignes de commentaires --- package_check.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package_check.sh b/package_check.sh index 82dae23..764c755 100755 --- a/package_check.sh +++ b/package_check.sh @@ -600,6 +600,10 @@ then # Si le fichier check_process est trouvé IN_LEVELS=0 while read <&4 LIGNE do # Parse les indications de niveaux d'app avant de parser les tests + LIGNE=$(echo $LIGNE | sed 's/^ *"//g') # Efface les espaces en début de ligne + if [ "${LIGNE:0:1}" == "#" ]; then + continue # Ligne de commentaire, ignorée. + fi if echo "$LIGNE" | grep -q "^;;; Levels"; then # Définition des variables de niveaux IN_LEVELS=1 fi