Parsing de check_process

This commit is contained in:
scith 2017-01-17 14:31:30 +01:00
parent a760ee7b82
commit 52969ffff6
3 changed files with 51 additions and 2 deletions

View file

@ -76,6 +76,17 @@ package_check/package_check.sh APP_ynh
fail_download_source=0 fail_download_source=0
port_already_use=1 (XXXX) port_already_use=1 (XXXX)
final_path_already_use=0 final_path_already_use=0
;;; Levels
Level 1=auto
Level 2=auto
Level 3=auto
Level 4=0
Level 5=auto
Level 6=auto
Level 7=auto
Level 8=0
Level 9=0
Level 10=0
``` ```
### `;; Nom du test` ### `;; Nom du test`
Nom du scénario de test qui sera effectué. Nom du scénario de test qui sera effectué.
@ -117,6 +128,21 @@ Si un test est absent de la liste, il sera ignoré. Cela revient à le noter à
Le numéro de port doit alors être noté entre parenthèse, il servira au test de port. Le numéro de port doit alors être noté entre parenthèse, il servira au test de port.
- `final_path_already_use`: *Non implémenté pour le moment...* - `final_path_already_use`: *Non implémenté pour le moment...*
### `;;; Levels`
Permet de choisir comment [chaque niveau](https://forum.yunohost.org/t/redaction-de-regles-pour-passer-une-app-en-officielle/2256/26) est déterminé.
Chaque niveau fixé à auto sera déterminé par le script. Il est également possible de fixer le niveau à 1 ou à 0 pour respectivement le valider ou l'invalider.
Il est à noter que les niveaux 4, 8, 9 et 10 ne peuvent être fixés à "auto" car ils ne peuvent être testés par le script et nécessitent une vérification manuelle.
- Niveau 1 : L'application s'installe et se désinstalle correctement. -- Peut être vérifié par package_check
- Niveau 2 : L'application s'installe et se désinstalle dans toutes les configurations communes. -- Peut être vérifié par package_check
- Niveau 3 : L'application supporte l'upgrade depuis une ancienne version du package. -- Peut être vérifié par package_check
- Niveau 4 : L'application prend en charge de LDAP et/ou HTTP Auth. -- Doit être vérifié manuellement
- Niveau 5 : Aucune erreur dans package_linter. -- Peut être vérifié par package_check
- Niveau 6 : L'application peut-être sauvegardée et restaurée sans erreurs sur la même machine ou une autre. -- Peut être vérifié par package_check
- Niveau 7 : Aucune erreur dans package check. -- Peut être vérifié par package_check
- Niveau 8 : L'application respecte toutes les YEP recommandées. -- Doit être vérifié manuellement
- Niveau 9 : L'application respecte toutes les YEP optionnelles. -- Doit être vérifié manuellement
- Niveau 10 : L'application est jugée parfaite. -- Doit être vérifié manuellement
--- ---
Le script `package_check.sh` accepte 6 arguments en plus du package à tester. Le script `package_check.sh` accepte 6 arguments en plus du package à tester.
- `--bash-mode`: Rend le script autonome. Aucune intervention de l'utilisateur ne sera nécessaire. - `--bash-mode`: Rend le script autonome. Aucune intervention de l'utilisateur ne sera nécessaire.

View file

@ -27,3 +27,14 @@
fail_download_source=0 fail_download_source=0
port_already_use=1 (66) port_already_use=1 (66)
final_path_already_use=0 final_path_already_use=0
;;; Levels
Level 1=auto
Level 2=auto
Level 3=auto
Level 4=0
Level 5=auto
Level 6=auto
Level 7=auto
Level 8=0
Level 9=0
Level 10=0

View file

@ -538,6 +538,7 @@ INIT_VAR() {
IN_PROCESS=0 IN_PROCESS=0
MANIFEST=0 MANIFEST=0
CHECKS=0 CHECKS=0
IN_LEVELS=1
auto_remove=1 auto_remove=1
install_pass=0 install_pass=0
note=0 note=0
@ -607,7 +608,12 @@ then # Si le fichier check_process est trouvé
if echo "$LIGNE" | grep -q "^auto_remove="; then # Indication d'auto remove if echo "$LIGNE" | grep -q "^auto_remove="; then # Indication d'auto remove
auto_remove=$(echo "$LIGNE" | cut -d '=' -f2) auto_remove=$(echo "$LIGNE" | cut -d '=' -f2)
fi fi
if echo "$LIGNE" | grep -q "^;;"; then # Début d'un scénario de test 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 [ "$IN_PROCESS" -eq 1 ]; then # Un scénario est déjà en cours. Donc on a atteind la fin du scénario. 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 TESTING_PROCESS
TEST_RESULTS TEST_RESULTS
@ -620,8 +626,14 @@ then # Si le fichier check_process est trouvé
IN_PROCESS=1 IN_PROCESS=1
MANIFEST=0 MANIFEST=0
CHECKS=0 CHECKS=0
IN_LEVELS=0
fi fi
if [ "$IN_PROCESS" -eq 1 ] 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 ]
then # Analyse des arguments du scenario de test then # Analyse des arguments du scenario de test
if echo "$LIGNE" | grep -q "^; Manifest"; then # Arguments du manifest if echo "$LIGNE" | grep -q "^; Manifest"; then # Arguments du manifest
MANIFEST=1 MANIFEST=1