#!/bin/bash # Boucle de test pour partir à la chasse au bug #654 (https://dev.yunohost.org/issues/654) # Un ctrl+C est nécessaire pour stopper la boucle! # !!!!!! Attention, ce script doit tourner dans une VM exclusivement !!!!!! APP="my_webapp_ynh" APPID=multi_webapp MANIFEST_ARGS_MOD="domain=crudelis-test4.fr&path=/site&admin=mcrudelis&sql=No&is_public=Yes" # Récupère le dossier du script if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi patchlog="$script_dir/temppatchlog654" patch654="$script_dir/patch_#654_pcheckless.log" COMPLETE_LOG="/var/log/yunohost/yunohost-cli.log" touch "$patch654" lprogress=$(sudo wc -l "$COMPLETE_LOG" | cut -d ' ' -f 1) # Compte le nombre de ligne du log complet PATCH_654 () { sudo tail -n +$lprogress "$COMPLETE_LOG" > "$patchlog" # Copie le fichier de log à partir de la dernière ligne du log préexistant lprogress=$(sudo wc -l "$COMPLETE_LOG" | cut -d ' ' -f 1) # Compte le nombre de ligne du log complet lprogress=$(( $lprogress + 1 )) # Ignore la première ligne, reprise de l'ancien log. bug=0 if grep -q "L'exécution du script .* ne s'est pas terminée" "$patchlog"; then bug=1 elif grep -q "Script execution hasn’t terminated:" "$patchlog"; then bug=1 elif grep -q "La ejecución del script no ha terminado:" "$patchlog"; then bug=1 elif grep -q "Skriptausführung noch nicht beendet" "$patchlog"; then bug=1 fi if [ "$bug" -eq 1 ] then echo -e "\e[91m\n!! Bug 654 détecté !!\n\e[0m" echo -e "$(date)\nBug 654\n" >> "$patch654" # Patch #654 fi } while (true) # Boucle infinie... do echo "Installation" sudo yunohost --debug app install "$APP" -a "$MANIFEST_ARGS_MOD" > /dev/null PATCH_654 echo "Remove" sudo yunohost --debug app remove $APPID > /dev/null PATCH_654 echo "Réinstallation" sudo yunohost --debug app install "$APP" -a "$MANIFEST_ARGS_MOD" > /dev/null PATCH_654 echo "Upgrade" sudo yunohost --debug app upgrade $APPID -f "$APP" > /dev/null PATCH_654 echo "Backup" sudo yunohost backup delete Backup_test sudo yunohost --debug backup create -n Backup_test --apps $APPID --hooks conf_ssowat data_home conf_ynh_firewall conf_cron > /dev/null PATCH_654 echo "Remove" sudo yunohost --debug app remove $APPID > /dev/null PATCH_654 echo "Restore" sudo yunohost --debug backup restore Backup_test --force --apps $APPID > /dev/null PATCH_654 echo "Remove" sudo yunohost --debug app remove $APPID > /dev/null PATCH_654 done