From 83fa6efcd6e45035802f6553ddcbc708fb39df63 Mon Sep 17 00:00:00 2001 From: scith Date: Sat, 14 Jan 2017 04:00:27 +0100 Subject: [PATCH] Calcul du niveau MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ces modifications rajoutent les niveaux: https://forum.yunohost.org/t/redaction-de-regles-pour-passer-une-app-en-officielle/2256/26 Chaque niveau peut être testé par package_check (option "auto") ou écrasé (1 ou 0). Les niveaux manuels (4,8,9,10) doivent obligatoirement être définis (1 ou 0) car ils ne sont pas testables par package_check. Le script affiche le niveau maximal ainsi que l'état de chaque niveau. --- package_check.sh | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/package_check.sh b/package_check.sh index 7d8380a..9883f83 100755 --- a/package_check.sh +++ b/package_check.sh @@ -439,6 +439,74 @@ TEST_RESULTS () { fi ECHO_FORMAT "$note/20 $smiley\n" "$color_note" "$typo_note" ECHO_FORMAT "\t Ensemble de tests effectués: $tnote/21\n\n" "white" "bold" + + # Affiche le niveau final + ECHO_FORMAT "Niveau de l'application: $level\n" + for i in {1..10}; do + ECHO_FORMAT "\t Niveau $i: ${level[i]}\n" + done +} + +# Cette fonctionne détermine le niveau final de l'application, en prenant en compte d'éventuels forçages +APP_LEVEL () { + level=0 # Initialise le niveau final à 0 + + # Niveau 1: L'application ne s'installe pas ou ne fonctionne pas après installation. + if [ "${level[1]}" == "auto" ]; then + if [ "$GLOBAL_CHECK_SETUP" -eq 1 ] && [ "$GLOBAL_CHECK_REMOVE" -eq 1 ] + then level[1]=1 ; else level[1]=0 ; fi + fi + + # Niveau 2: L'application s'installe et se désinstalle dans toutes les configurations communes. + if [ "${level[2]}" == "auto" ]; then + if [ "$GLOBAL_CHECK_SUB_DIR" -ne -1 ] && \ + [ "$GLOBAL_CHECK_REMOVE_SUBDIR" -ne -1 ] && \ + [ "$GLOBAL_CHECK_ROOT" -ne -1 ] && \ + [ "$GLOBAL_CHECK_REMOVE_ROOT" -ne -1 ] && \ + [ "$GLOBAL_CHECK_PRIVATE" -ne -1 ] && \ + [ "$GLOBAL_CHECK_PUBLIC" -ne -1 ] && \ + [ "$GLOBAL_CHECK_MULTI_INSTANCE" -ne -1 ] + then level[2]=1 ; else level[2]=0 ; fi + fi + + # Niveau 3: L'application supporte l'upgrade depuis une ancienne version du package. + if [ "${level[3]}" == "auto" ]; then + if [ "$GLOBAL_CHECK_UPGRADE" -eq 1 ] + then level[3]=1 ; else level[3]=0 ; fi + fi + + # 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. + if [ "${level[5]}" == "auto" ]; then + if [ "$GLOBAL_LINTER" -eq 1 ] + then level[5]=1 ; else level[5]=0 ; fi + fi + + # Niveau 6: L'application peut-être sauvegardée et restaurée sans erreurs sur la même machine ou une autre. + if [ "${level[6]}" == "auto" ]; then + if [ "$GLOBAL_CHECK_BACKUP" -eq 1 ] && [ "$GLOBAL_CHECK_RESTORE" -eq 1 ] + then level[6]=1 ; else level[6]=0 ; fi + fi + + # Niveau 7: Aucune erreur dans package check. + if [ "${level[7]}" == "auto" ]; then + if [ "$note" -ge 20 ] + then level[7]=1 ; else level[7]=0 ; fi + fi + + # 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 + + # Calcule le niveau final + for i in {1..10}; do + if [ "${level[i]}" -eq 1 ]; then level=$i + else break; fi + done + } INIT_VAR() { @@ -497,6 +565,17 @@ INIT_VAR() { fail_download_source=0 port_already_use=0 final_path_already_use=0 + + level[1]="auto" # L'application s'installe et se désinstalle correctement. -- Peut être vérifié par package_check + level[2]="auto" # L'application s'installe et se désinstalle dans toutes les configurations communes. -- Peut être vérifié par package_check + level[3]="auto" # L'application supporte l'upgrade depuis une ancienne version du package. -- Peut être vérifié par package_check + level[4]=0 # L'application prend en charge de LDAP et/ou HTTP Auth. -- Doit être vérifié manuellement + level[5]="auto" # Aucune erreur dans package_linter. -- Peut être vérifié par package_check + level[6]="auto" # 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 + level[7]="auto" # Aucune erreur dans package check. -- Peut être vérifié par package_check + level[8]=0 # L'application respecte toutes les YEP recommandées. -- Doit être vérifié manuellement + level[9]=0 # L'application respecte toutes les YEP optionnelles. -- Doit être vérifié manuellement + level[10]=0 # L'application est jugée parfaite. -- Doit être vérifié manuellement } INIT_VAR @@ -744,6 +823,7 @@ TESTING_PROCESS if [ "$no_lxc" -eq 0 ]; then LXC_TURNOFF fi +APP_LEVEL TEST_RESULTS echo "Le log complet des installations et suppressions est disponible dans le fichier $COMPLETE_LOG"