#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= if [ ! -e _common.sh ]; then # Get the _common.sh file if it's not in the current directory cp ../settings/scripts/_common.sh ./_common.sh chmod a+rx _common.sh fi source _common.sh source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= # Exit if an error occurs during the execution of the script ynh_clean_setup () { SUPPRESS_WARNING kill -s 15 $PID_TAIL # Arrête l'exécution de tail. ynh_secure_remove "$tempfile" } ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= app=$YNH_APP_INSTANCE_NAME final_path=$(ynh_app_setting_get $app final_path) domain=$(ynh_app_setting_get $app domain) #================================================= # STANDARD BACKUP STEPS #================================================= # BACKUP OF THE MAIN DIR OF THE APP #================================================= systemctl stop jenkins sleep 1 CHECK_SIZE "$final_path" ynh_backup "$final_path" #================================================= # BACKUP OF THE NGINX CONFIGURATION #================================================= ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # SPECIFIC BACKUP #================================================= # BACKUP OF THE JENKINS' BOOT CONFIG #================================================= ynh_backup /etc/default/$app #================================================= # START JENKINS IN BACKGROUND #================================================= # Démarre jenkins WARNING echo "Redémarrage de jenkins" tempfile="$(mktemp)" tail -f -n1 /var/log/$app/$app.log > "$tempfile" & # Suit le démarrage dans le log PID_TAIL=$! # Récupère le PID de la commande tail, qui est passée en arrière plan. systemctl restart $app #================================================= # CHECK JENKINS STARTING #================================================= for i in `seq 1 300` do # La boucle attend le démarrage de jenkins ou 5 minutes if grep -q "Jenkins is fully up and running" "$tempfile"; then WARNING echo "Le service $app a démarré correctement." break # Si le log annonce le démarrage de jenkins, sort de la boucle. fi WARNING echo -n "." sleep 1 done echo "" QUIET kill -s 15 $PID_TAIL # Arrête l'exécution de tail. ynh_secure_remove "$tempfile"