mirror of
https://github.com/YunoHost/package_check.git
synced 2024-09-03 20:06:20 +02:00
Test upgrade, public, privé
This commit is contained in:
parent
4a6273f6cf
commit
9ce547e195
3 changed files with 277 additions and 135 deletions
|
@ -1,33 +1,12 @@
|
|||
## Nom du 1er scénario de test
|
||||
auto_remove=1
|
||||
# Manifest
|
||||
domain="$DOMAIN"
|
||||
path="$PATH"
|
||||
admin="$USER"
|
||||
language="en_EN"
|
||||
is_public="No"
|
||||
password="$PASSWORD"
|
||||
port="666"
|
||||
# Checks
|
||||
setup_sub_dir=1
|
||||
setup_root=1
|
||||
setup_nourl=0
|
||||
setup_private=1
|
||||
setup_public=1
|
||||
wrong_user=1
|
||||
wrong_path=1
|
||||
incorrect_path=1
|
||||
corrupt_source=1
|
||||
fail_download_source=1
|
||||
port_already_use=1
|
||||
final_path_already_use=1
|
||||
## Nom du 2e scénario de test
|
||||
# Manifest
|
||||
domain="$DOMAIN"
|
||||
path="$PATH"
|
||||
admin="$USER"
|
||||
language="en_EN"
|
||||
is_public="Yes"
|
||||
password="$PASSWORD"
|
||||
domain="$DOMAIN" (DOMAIN)
|
||||
path="$PATH" (PATH)
|
||||
admin="$USER" (USER)
|
||||
language="fr"
|
||||
is_public="No" (PUBLIC|public=Yes|private=No)
|
||||
password="$PASSWORD" (PASSWORD)
|
||||
port="666"
|
||||
# Checks
|
||||
setup_sub_dir=1
|
||||
|
|
139
package_check.sh
139
package_check.sh
|
@ -27,7 +27,8 @@ APP_CHECK=$1
|
|||
|
||||
# Vérifie l'existence du fichier check_process
|
||||
if [ ! -e $APP_CHECK/check_process ]; then
|
||||
echo "Impossible de trouver le fichier check_process pour procéder aux tests."
|
||||
echo -e "\nImpossible de trouver le fichier check_process pour procéder aux tests."
|
||||
echo "Merci d'ajouter un fichier check_process à la racine de l'app à tester."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -53,8 +54,12 @@ GLOBAL_CHECK_FINALPATH=0
|
|||
IN_PROCESS=0
|
||||
MANIFEST=0
|
||||
CHECKS=0
|
||||
AUTO_REMOVE=1
|
||||
while read LIGNE
|
||||
do
|
||||
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 "^##"; 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
|
||||
|
@ -86,6 +91,28 @@ do
|
|||
if [ "$MANIFEST" -eq 1 ]
|
||||
then # Analyse des arguments du manifest
|
||||
if echo "$LIGNE" | grep -q "="; then
|
||||
if echo "$LIGNE" | grep -q "(DOMAIN)"; then # Domaine dans le manifest
|
||||
MANIFEST_DOMAIN=$(echo "$LIGNE" | cut -d '=' -f1) # Récupère la clé du manifest correspondant au domaine
|
||||
LIGNE=$(echo "$LIGNE" | cut -d '(' -f1) # Retire l'indicateur de clé de manifest à la fin de la ligne
|
||||
fi
|
||||
if echo "$LIGNE" | grep -q "(PATH)"; then # Path dans le manifest
|
||||
MANIFEST_PATH=$(echo "$LIGNE" | cut -d '=' -f1) # Récupère la clé du manifest correspondant au path
|
||||
LIGNE=$(echo "$LIGNE" | cut -d '(' -f1) # Retire l'indicateur de clé de manifest à la fin de la ligne
|
||||
fi
|
||||
if echo "$LIGNE" | grep -q "(USER)"; then # User dans le manifest
|
||||
MANIFEST_USER=$(echo "$LIGNE" | cut -d '=' -f1) # Récupère la clé du manifest correspondant à l'utilisateur
|
||||
LIGNE=$(echo "$LIGNE" | cut -d '(' -f1) # Retire l'indicateur de clé de manifest à la fin de la ligne
|
||||
fi
|
||||
if echo "$LIGNE" | grep -q "(PUBLIC"; then # Accès public/privé dans le manifest
|
||||
MANIFEST_PUBLIC=$(echo "$LIGNE" | cut -d '=' -f1) # Récupère la clé du manifest correspondant à l'accès public ou privé
|
||||
MANIFEST_PUBLIC_public=$(echo "$LIGNE" | grep -o "|public=[a-Z]*" | cut -d "=" -f2) # Récupère la valeur pour un accès public.
|
||||
MANIFEST_PUBLIC_private=$(echo "$LIGNE" | grep -o "|private=[a-Z]*" | cut -d "=" -f2) # Récupère la valeur pour un accès privé.
|
||||
LIGNE=$(echo "$LIGNE" | cut -d '(' -f1) # Retire l'indicateur de clé de manifest à la fin de la ligne
|
||||
fi
|
||||
if echo "$LIGNE" | grep -q "(PASSWORD)"; then # Password dans le manifest
|
||||
MANIFEST_PASSWORD=$(echo "$LIGNE" | cut -d '=' -f1) # Récupère la clé du manifest correspondant au mot de passe
|
||||
LIGNE=$(echo "$LIGNE" | cut -d '(' -f1) # Retire l'indicateur de clé de manifest à la fin de la ligne
|
||||
fi
|
||||
if [ "${#MANIFEST_ARGS}" -gt 0 ]; then # Si il y a déjà des arguments
|
||||
MANIFEST_ARGS="$MANIFEST_ARGS&" #, précède de &
|
||||
fi
|
||||
|
@ -137,164 +164,164 @@ done < "$APP_CHECK/check_process"
|
|||
|
||||
TESTING_PROCESS
|
||||
|
||||
ECHO_FORMAT "Installation: "
|
||||
ECHO_FORMAT "\n\nInstallation: "
|
||||
if [ "$GLOBAL_CHECK_SETUP" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_SETUP" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Installation en sous-dossier: "
|
||||
if [ "$GLOBAL_CHECK_SUB_DIR" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_SUB_DIR" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Installation à la racine: "
|
||||
if [ "$GLOBAL_CHECK_ROOT" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_ROOT" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Suppression: "
|
||||
if [ "$GLOBAL_CHECK_REMOVE" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_REMOVE" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Suppression depuis sous-dossier: "
|
||||
if [ "$GLOBAL_CHECK_REMOVE_SUBDIR" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_REMOVE_SUBDIR" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Suppression depuis racine: "
|
||||
if [ "$GLOBAL_CHECK_REMOVE_ROOT" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_REMOVE_ROOT" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Upgrade: "
|
||||
if [ "$GLOBAL_CHECK_UPGRADE" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_UPGRADE" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Backup: "
|
||||
if [ "$GLOBAL_CHECK_BACKUP" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_BACKUP" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Restore: "
|
||||
if [ "$GLOBAL_CHECK_RESTORE" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_RESTORE" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Installation privée: "
|
||||
if [ "$GLOBAL_CHECK_PRIVATE" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_PRIVATE" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Installation publique: "
|
||||
if [ "$GLOBAL_CHECK_PUBLIC" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_PUBLIC" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Mauvais utilisateur: "
|
||||
if [ "$GLOBAL_CHECK_ADMIN" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_ADMIN" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Erreur de domaine: "
|
||||
if [ "$GLOBAL_CHECK_DOMAIN" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_DOMAIN" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Correction de path: "
|
||||
if [ "$GLOBAL_CHECK_PATH" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_PATH" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Source corrompue: "
|
||||
if [ "$GLOBAL_CHECK_CORRUPT" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_CORRUPT" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Erreur de téléchargement de la source: "
|
||||
if [ "$GLOBAL_CHECK_DL" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_DL" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Port déjà utilisé: "
|
||||
if [ "$GLOBAL_CHECK_PORT" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_PORT" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
||||
ECHO_FORMAT "Dossier déjà utilisé: "
|
||||
if [ "$GLOBAL_CHECK_FINALPATH" -eq 1 ]; then
|
||||
ECHO_FORMAT "SUCCESS\n" "lgreen"
|
||||
ECHO_FORMAT "\t\t\tSUCCESS\n" "lgreen"
|
||||
elif [ "$GLOBAL_CHECK_FINALPATH" -eq -1 ]; then
|
||||
ECHO_FORMAT "FAIL\n" "lred"
|
||||
ECHO_FORMAT "\t\t\tFAIL\n" "lred"
|
||||
else
|
||||
ECHO_FORMAT "Not evaluated.\n" "white"
|
||||
ECHO_FORMAT "\t\t\tNot evaluated.\n" "white"
|
||||
fi
|
||||
|
|
|
@ -9,17 +9,24 @@ source $abs_path/sub_scripts/log_extractor.sh
|
|||
echo -n "" > $RESULT # Initialise le fichier des résulats d'analyse
|
||||
|
||||
SETUP_APP () {
|
||||
# echo -e "\nMANIFEST_ARGS=$MANIFEST_ARGS_MOD\n"
|
||||
# echo -e "MANIFEST_ARGS=$MANIFEST_ARGS_MOD"
|
||||
COPY_LOG 1
|
||||
sudo yunohost --debug app install $APP_CHECK -a "$MANIFEST_ARGS_MOD" > /dev/null 2>&1
|
||||
YUNOHOST_RESULT=$?
|
||||
COPY_LOG 2
|
||||
APPID=$(grep -o "YNH_APP_INSTANCE_NAME=[^ ]*" "$OUTPUTD" | cut -d '=' -f2) # Récupère le nom de l'app au moment de l'install. Pour pouvoir le réutiliser dans les commandes yunohost. La regex matche tout ce qui suit le =, jusqu'à l'espace.
|
||||
}
|
||||
|
||||
REMOVE_APP () {
|
||||
ECHO_FORMAT "\nSuppression...\n" "white" "bold"
|
||||
COPY_LOG 1
|
||||
sudo yunohost --debug app remove $APPID > /dev/null 2>&1
|
||||
YUNOHOST_REMOVE=$?
|
||||
COPY_LOG 2
|
||||
}
|
||||
|
||||
CHECK_URL () {
|
||||
ECHO_FORMAT "\nAccès par l'url...\n" "white" "bold"
|
||||
echo "127.0.0.1 $DOMAIN #package_check" | sudo tee -a /etc/hosts > /dev/null # Renseigne le hosts pour le domain à tester, pour passer directement sur localhost
|
||||
curl -LksS $DOMAIN/$CHECK_PATH -o url_output
|
||||
URL_TITLE=$(grep "<title>" url_output | cut -d '>' -f 2 | cut -d '<' -f1)
|
||||
|
@ -39,13 +46,12 @@ CHECK_URL () {
|
|||
|
||||
CHECK_SETUP_SUBDIR () {
|
||||
# Test d'installation en sous-dossier
|
||||
ECHO_FORMAT "\n>>Installation en sous-dossier...\n" "white" "bold"
|
||||
ECHO_FORMAT "\n>> Installation en sous-dossier...\n" "white" "bold"
|
||||
MANIFEST_ARGS_MOD=$MANIFEST_ARGS # Copie des arguments
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$DOMAIN'/"$DOMAIN"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PATH'/"$PATH_TEST"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$USER'/"$USER_TEST"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PASSWORD'/"$PASSWORD_TEST"}
|
||||
COPY_LOG 1
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_DOMAIN=[a-Z./-$]*\&/$MANIFEST_DOMAIN=$DOMAIN\&/")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_USER=[a-Z/-$]*\&@$MANIFEST_USER=$USER_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PASSWORD=[a-Z$]*\&/$MANIFEST_PASSWORD=$PASSWORD_TEST\&/")
|
||||
# Installation de l'app
|
||||
SETUP_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ]; then
|
||||
|
@ -59,43 +65,37 @@ CHECK_SETUP_SUBDIR () {
|
|||
fi
|
||||
GLOBAL_CHECK_SUB_DIR=-1 # Installation en sous-dossier échouée
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
APPID=$(grep -o "YNH_APP_INSTANCE_NAME=[^ ]*" "$OUTPUTD" | cut -d '=' -f2) # Récupère le nom de l'app au moment de l'install. Pour pouvoir le réutiliser dans les commandes yunohost. La regex matche tout ce qui suit le =, jusqu'à l'espace.
|
||||
ECHO_FORMAT "\nAccès par l'url...\n" "white" "bold"
|
||||
# Test l'accès à l'app
|
||||
CHECK_PATH=$PATH_TEST
|
||||
CHECK_URL
|
||||
COPY_LOG 1
|
||||
ECHO_FORMAT "\nSuppression...\n" "white" "bold"
|
||||
# Suppression de l'app
|
||||
REMOVE_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ] # Si l'installation a été un succès. On teste la suppression
|
||||
then
|
||||
if [ "$YUNOHOST_REMOVE" -eq 0 ]; then
|
||||
ECHO_FORMAT "--- SUCCESS ---\n" "lgreen" "bold"
|
||||
GLOBAL_CHECK_REMOVE_SUBDIR=1 # Suppression réussie
|
||||
GLOBAL_CHECK_REMOVE_SUBDIR=1 # Suppression en sous-dossier réussie
|
||||
GLOBAL_CHECK_REMOVE=1 # Suppression réussie
|
||||
else
|
||||
ECHO_FORMAT "--- FAIL ---\n" "lred" "bold"
|
||||
if [ "$GLOBAL_CHECK_REMOVE" -ne 1 ]; then
|
||||
GLOBAL_CHECK_REMOVE=-1 # Suppression échouée
|
||||
fi
|
||||
GLOBAL_CHECK_REMOVE_SUBDIR=-1 # Suppression échouée
|
||||
GLOBAL_CHECK_REMOVE_SUBDIR=-1 # Suppression en sous-dossier échouée
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
fi
|
||||
}
|
||||
|
||||
CHECK_SETUP_ROOT () {
|
||||
# Test d'installation à la racine
|
||||
ECHO_FORMAT "\n>>Installation à la racine...\n" "white" "bold"
|
||||
ECHO_FORMAT "\n>> Installation à la racine...\n" "white" "bold"
|
||||
MANIFEST_ARGS_MOD=$MANIFEST_ARGS # Copie des arguments
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$DOMAIN'/"$DOMAIN"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PATH'/"$PATH_TEST"} # Domain et path ne devrait théoriquement pas être utilisés
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$USER'/"$USER_TEST"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PASSWORD'/"$PASSWORD_TEST"}
|
||||
COPY_LOG 1
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_DOMAIN=[a-Z./-$]*\&/$MANIFEST_DOMAIN=$DOMAIN\&/")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=/\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_USER=[a-Z/-$]*\&@$MANIFEST_USER=$USER_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PASSWORD=[a-Z$]*\&/$MANIFEST_PASSWORD=$PASSWORD_TEST\&/")
|
||||
# Installation de l'app
|
||||
SETUP_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ]; then
|
||||
|
@ -109,43 +109,37 @@ CHECK_SETUP_ROOT () {
|
|||
fi
|
||||
GLOBAL_CHECK_ROOT=-1 # Installation à la racine échouée
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
APPID=$(grep -o "YNH_APP_INSTANCE_NAME=[^ ]*" "$OUTPUTD" | cut -d '=' -f2) # Récupère le nom de l'app au moment de l'install. Pour pouvoir le réutiliser dans les commandes yunohost. La regex matche tout ce qui suit le =, jusqu'à l'espace.
|
||||
ECHO_FORMAT "\nAccès par l'url...\n" "white" "bold"
|
||||
# Test l'accès à l'app
|
||||
CHECK_PATH="/"
|
||||
CHECK_URL
|
||||
COPY_LOG 1
|
||||
ECHO_FORMAT "\nSuppression...\n" "white" "bold"
|
||||
# Suppression de l'app
|
||||
REMOVE_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ] # Si l'installation a été un succès. On teste la suppression
|
||||
then
|
||||
if [ "$YUNOHOST_REMOVE" -eq 0 ]; then
|
||||
ECHO_FORMAT "--- SUCCESS ---\n" "lgreen" "bold"
|
||||
GLOBAL_CHECK_REMOVE_ROOT=1 # Suppression réussie
|
||||
GLOBAL_CHECK_REMOVE_ROOT=1 # Suppression à la racine réussie
|
||||
GLOBAL_CHECK_REMOVE=1 # Suppression réussie
|
||||
else
|
||||
ECHO_FORMAT "--- FAIL ---\n" "lred" "bold"
|
||||
if [ "$GLOBAL_CHECK_REMOVE" -ne 1 ]; then
|
||||
GLOBAL_CHECK_REMOVE=-1 # Suppression échouée
|
||||
fi
|
||||
GLOBAL_CHECK_REMOVE_ROOT=-1 # Suppression échouée
|
||||
GLOBAL_CHECK_REMOVE_ROOT=-1 # Suppression à la racine échouée
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
fi
|
||||
}
|
||||
|
||||
CHECK_SETUP_NO_URL () {
|
||||
# Test d'installation sans accès par url
|
||||
ECHO_FORMAT "\n>>Installation sans accès par url...\n" "white" "bold"
|
||||
ECHO_FORMAT "\n>> Installation sans accès par url...\n" "white" "bold"
|
||||
MANIFEST_ARGS_MOD=$MANIFEST_ARGS # Copie des arguments
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$DOMAIN'/"$DOMAIN"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PATH'/"/"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$USER'/"$USER_TEST"}
|
||||
MANIFEST_ARGS_MOD=${MANIFEST_ARGS_MOD//'$PASSWORD'/"$PASSWORD_TEST"}
|
||||
COPY_LOG 1
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_DOMAIN=[a-Z./-$]*\&/$MANIFEST_DOMAIN=$DOMAIN\&/")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST\&@") # Domain et path ne devrait théoriquement pas être utilisés
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_USER=[a-Z/-$]*\&@$MANIFEST_USER=$USER_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PASSWORD=[a-Z$]*\&/$MANIFEST_PASSWORD=$PASSWORD_TEST\&/")
|
||||
# Installation de l'app
|
||||
SETUP_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ]; then
|
||||
|
@ -157,11 +151,7 @@ CHECK_SETUP_NO_URL () {
|
|||
GLOBAL_CHECK_SETUP=-1 # Installation échouée
|
||||
fi
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
APPID=$(grep -o "YNH_APP_INSTANCE_NAME=[^ ]*" "$OUTPUTD" | cut -d '=' -f2) # Récupère le nom de l'app au moment de l'install. Pour pouvoir le réutiliser dans les commandes yunohost. La regex matche tout ce qui suit le =, jusqu'à l'espace.
|
||||
COPY_LOG 1
|
||||
ECHO_FORMAT "\nSuppression...\n" "white" "bold"
|
||||
# Suppression de l'app
|
||||
REMOVE_APP
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ] # Si l'installation a été un succès. On teste la suppression
|
||||
|
@ -176,56 +166,202 @@ CHECK_SETUP_NO_URL () {
|
|||
fi
|
||||
GLOBAL_CHECK_REMOVE_ROOT=-1 # Suppression échouée
|
||||
fi
|
||||
COPY_LOG 2
|
||||
LOG_EXTRACTOR
|
||||
fi
|
||||
}
|
||||
|
||||
CHECK_UPGRADE () {
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_UPGRADE=0
|
||||
# Test d'upgrade
|
||||
ECHO_FORMAT "\n>> Upgrade...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
return;
|
||||
fi
|
||||
MANIFEST_ARGS_MOD=$MANIFEST_ARGS # Copie des arguments
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_DOMAIN=[a-Z./-$]*\&/$MANIFEST_DOMAIN=$DOMAIN\&/")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_USER=[a-Z/-$]*\&@$MANIFEST_USER=$USER_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PASSWORD=[a-Z$]*\&/$MANIFEST_PASSWORD=$PASSWORD_TEST\&/")
|
||||
if [ "$GLOBAL_CHECK_SUB_DIR" -eq 1 ]; then # Si l'install en sub_dir à fonctionné. Utilise ce mode d'installation
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST\&@")
|
||||
CHECK_PATH="$PATH_TEST"
|
||||
elif [ "$GLOBAL_CHECK_ROOT" -eq 1 ]; then # Sinon utilise une install root, si elle a fonctionné
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=/\&@")
|
||||
CHECK_PATH="/"
|
||||
else
|
||||
echo "Aucun mode d'installation n'a fonctionné, impossible d'effectuer ce test..."
|
||||
return;
|
||||
fi
|
||||
ECHO_FORMAT "\nInstallation préalable..." "white" "bold"
|
||||
# Installation de l'app
|
||||
SETUP_APP
|
||||
ECHO_FORMAT "\nUpgrade sur la même version du package...\n" "white" "bold"
|
||||
# Upgrade de l'app
|
||||
COPY_LOG 1
|
||||
sudo yunohost --debug app upgrade $APPID -f $APP_CHECK > /dev/null 2>&1
|
||||
YUNOHOST_RESULT=$?
|
||||
COPY_LOG 2
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ]; then
|
||||
ECHO_FORMAT "--- SUCCESS ---\n" "lgreen" "bold"
|
||||
GLOBAL_CHECK_UPGRADE=1 # Upgrade réussie
|
||||
else
|
||||
ECHO_FORMAT "--- FAIL ---\n" "lred" "bold"
|
||||
GLOBAL_CHECK_UPGRADE=-1 # Upgrade échouée
|
||||
fi
|
||||
LOG_EXTRACTOR
|
||||
# Test l'accès à l'app
|
||||
CHECK_URL
|
||||
# Suppression de l'app
|
||||
REMOVE_APP
|
||||
}
|
||||
|
||||
CHECK_BACKUP () {
|
||||
# Test de backup
|
||||
ECHO_FORMAT "\n>> Backup...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_BACKUP=0
|
||||
}
|
||||
CHECK_RESTORE () {
|
||||
# Test de restore
|
||||
ECHO_FORMAT "\n>> Restore...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_RESTORE=0
|
||||
}
|
||||
CHECK_PRIVATE () {
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_PRIVATE=0
|
||||
}
|
||||
CHECK_PUBLIC () {
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_PUBLIC=0
|
||||
|
||||
CHECK_PUBLIC_PRIVATE () {
|
||||
# Test d'installation en public/privé
|
||||
if [ "$1" == "private" ]; then
|
||||
ECHO_FORMAT "\n>> Installation privée...\n" "white" "bold"
|
||||
fi
|
||||
if [ "$1" == "public" ]; then
|
||||
ECHO_FORMAT "\n>> Installation publique...\n" "white" "bold"
|
||||
fi
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
return;
|
||||
fi
|
||||
MANIFEST_ARGS_MOD=$MANIFEST_ARGS # Copie des arguments
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_DOMAIN=[a-Z./-$]*\&/$MANIFEST_DOMAIN=$DOMAIN\&/")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_USER=[a-Z/-$]*\&@$MANIFEST_USER=$USER_TEST\&@")
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PASSWORD=[a-Z$]*\&/$MANIFEST_PASSWORD=$PASSWORD_TEST\&/")
|
||||
# Choix public/privé
|
||||
if [ "$1" == "private" ]; then
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PUBLIC=[a-Z]*\&/$MANIFEST_PUBLIC=$MANIFEST_PUBLIC_private\&/")
|
||||
fi
|
||||
if [ "$1" == "public" ]; then
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s/$MANIFEST_PUBLIC=[a-Z]*\&/$MANIFEST_PUBLIC=$MANIFEST_PUBLIC_public\&/")
|
||||
fi
|
||||
if [ "$GLOBAL_CHECK_SUB_DIR" -eq 1 ]; then # Si l'install en sub_dir à fonctionné. Utilise ce mode d'installation
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=$PATH_TEST\&@")
|
||||
CHECK_PATH="$PATH_TEST"
|
||||
elif [ "$GLOBAL_CHECK_ROOT" -eq 1 ]; then # Sinon utilise une install root, si elle a fonctionné
|
||||
MANIFEST_ARGS_MOD=$(echo $MANIFEST_ARGS_MOD | sed "s@$MANIFEST_PATH=[a-Z/$]*\&@$MANIFEST_PATH=/\&@")
|
||||
CHECK_PATH="/"
|
||||
else
|
||||
echo "Aucun mode d'installation n'a fonctionné, impossible d'effectuer ce test..."
|
||||
return;
|
||||
fi
|
||||
# Installation de l'app
|
||||
SETUP_APP
|
||||
# Test l'accès à l'app
|
||||
CHECK_URL
|
||||
if [ "$1" == "private" ]; then
|
||||
if [ "$YUNO_PORTAL" -eq 0 ]; then # En privé, si l'accès url n'arrive pas sur le portail. C'est un échec.
|
||||
YUNOHOST_RESULT=1
|
||||
fi
|
||||
fi
|
||||
if [ "$1" == "public" ]; then
|
||||
if [ "$YUNO_PORTAL" -eq 1 ]; then # En public, si l'accès url arrive sur le portail. C'est un échec.
|
||||
YUNOHOST_RESULT=1
|
||||
fi
|
||||
fi
|
||||
if [ "$YUNOHOST_RESULT" -eq 0 ]; then
|
||||
ECHO_FORMAT "--- SUCCESS ---\n" "lgreen" "bold"
|
||||
if [ "$1" == "private" ]; then
|
||||
GLOBAL_CHECK_PRIVATE=1 # Installation privée réussie
|
||||
fi
|
||||
if [ "$1" == "public" ]; then
|
||||
GLOBAL_CHECK_PUBLIC=1 # Installation publique réussie
|
||||
fi
|
||||
else
|
||||
ECHO_FORMAT "--- FAIL ---\n" "lred" "bold"
|
||||
if [ "$1" == "private" ]; then
|
||||
GLOBAL_CHECK_PRIVATE=-1 # Installation privée échouée
|
||||
fi
|
||||
if [ "$1" == "public" ]; then
|
||||
GLOBAL_CHECK_PUBLIC=-1 # Installation publique échouée
|
||||
fi
|
||||
fi
|
||||
LOG_EXTRACTOR
|
||||
# Suppression de l'app
|
||||
REMOVE_APP
|
||||
}
|
||||
|
||||
CHECK_ADMIN () {
|
||||
# Test d'erreur d'utilisateur
|
||||
ECHO_FORMAT "\n>> Erreur d'utilisateur...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_ADMIN=0
|
||||
}
|
||||
CHECK_DOMAIN () {
|
||||
# Test d'erreur de path ou de domaine
|
||||
ECHO_FORMAT "\n>> Erreur de domaine...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_DOMAIN=0
|
||||
}
|
||||
CHECK_PATH () {
|
||||
# Test d'erreur de forme de path
|
||||
ECHO_FORMAT "\n>> Path mal formé...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_PATH=0
|
||||
}
|
||||
CHECK_CORRUPT () {
|
||||
# Test d'erreur sur source corrompue
|
||||
ECHO_FORMAT "\n>> Source corrompue après téléchargement...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_CORRUPT=0
|
||||
}
|
||||
CHECK_DL () {
|
||||
# Test d'erreur de téléchargement de la source
|
||||
ECHO_FORMAT "\n>> Erreur de téléchargement de la source...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_DL=0
|
||||
}
|
||||
CHECK_PORT () {
|
||||
# Test d'erreur de port
|
||||
ECHO_FORMAT "\n>> Port déjà utilisé...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_PORT=0
|
||||
}
|
||||
CHECK_FINALPATH () {
|
||||
# Test sur final path déjà utilisé.
|
||||
ECHO_FORMAT "\n>> Final path déjà utilisé...\n" "white" "bold"
|
||||
if [ "$GLOBAL_CHECK_SETUP" -ne 1 ]; then
|
||||
echo "L'installation a échouée, impossible d'effectuer ce test..."
|
||||
fi
|
||||
echo "Non implémenté"
|
||||
# GLOBAL_CHECK_FINALPATH=0
|
||||
}
|
||||
|
@ -246,10 +382,10 @@ TESTING_PROCESS () {
|
|||
CHECK_BACKUP
|
||||
CHECK_RESTORE
|
||||
if [ "$setup_private" -eq 1 ]; then
|
||||
CHECK_PRIVATE # Test d'installation en privé
|
||||
CHECK_PUBLIC_PRIVATE private # Test d'installation en privé
|
||||
fi
|
||||
if [ "$setup_public" -eq 1 ]; then
|
||||
CHECK_PUBLIC # Test d'installation en public
|
||||
CHECK_PUBLIC_PRIVATE public # Test d'installation en public
|
||||
fi
|
||||
if [ "$wrong_user" -eq 1 ]; then
|
||||
CHECK_ADMIN # Test d'erreur d'utilisateur
|
||||
|
|
Loading…
Add table
Reference in a new issue