Calcul du niveau

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.
This commit is contained in:
scith 2017-01-14 04:00:27 +01:00
parent b4a65b876a
commit 83fa6efcd6

View file

@ -439,6 +439,74 @@ TEST_RESULTS () {
fi fi
ECHO_FORMAT "$note/20 $smiley\n" "$color_note" "$typo_note" ECHO_FORMAT "$note/20 $smiley\n" "$color_note" "$typo_note"
ECHO_FORMAT "\t Ensemble de tests effectués: $tnote/21\n\n" "white" "bold" 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() { INIT_VAR() {
@ -497,6 +565,17 @@ INIT_VAR() {
fail_download_source=0 fail_download_source=0
port_already_use=0 port_already_use=0
final_path_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 INIT_VAR
@ -744,6 +823,7 @@ TESTING_PROCESS
if [ "$no_lxc" -eq 0 ]; then if [ "$no_lxc" -eq 0 ]; then
LXC_TURNOFF LXC_TURNOFF
fi fi
APP_LEVEL
TEST_RESULTS TEST_RESULTS
echo "Le log complet des installations et suppressions est disponible dans le fichier $COMPLETE_LOG" echo "Le log complet des installations et suppressions est disponible dans le fichier $COMPLETE_LOG"