echo
terminal-save
echo -e "[distant DEV] Calcul en cours de la taille des Uploads \033[5m...\033[0m"
uploadSizeTotal=$(ssh -p $devPort -q $devUserName@$devHost " du -sh0 ${projectDevPath}wp-content/uploads/ | cut -f -1")
uploadSizeYear=$(ssh -p $devPort -q $devUserName@$devHost " du -sh0 ${projectDevPath}wp-content/uploads/$(date +%Y)/ | cut -f -1")
uploadSizeMonth=$(ssh -p $devPort -q $devUserName@$devHost " du -sh0 ${projectDevPath}wp-content/uploads/$(date +%Y)/$(date +%m)/ | cut -f -1")
echo
if [ -n "$WP_FORCE_UPLOADS" ]
then
case $WP_FORCE_UPLOADS in
"all")
upl="Complet : $uploadSizeTotal"
;;
"year")
upl="Année : /$(date +%Y)/ : $uploadSizeYear"
;;
"month")
upl="Mois : /$(date +%Y)/$(date +%m)/ : $uploadSizeMonth"
;;
"none")
upl="Aucun Upload : 0K"
;;
*)
echo
echo "Erreur dans le paramètre passé --wp-uploads=[all/year/month/none]"
echo
exit 1
esac
else
echo 'Récupération du dossier upload ? (attention au volume à télécharger)'
echo
PS3='Votre choix ? '
uploads=("Complet : $uploadSizeTotal" "Année : /$(date +%Y)/ : $uploadSizeYear" "Mois : /$(date +%Y)/$(date +%m)/ : $uploadSizeMonth" "Aucun Upload : 0K")
mkdir -p $projectDestPath/wp-content/uploads/$(date +%Y)/$(date +%m)/
set -o posix
select upl in "${uploads[@]}"; do
case $upl in
"Complet : $uploadSizeTotal")
break
;;
"Année : /$(date +%Y)/ : $uploadSizeYear")
break
;;
"Mois : /$(date +%Y)/$(date +%m)/ : $uploadSizeMonth")
break
;;
"Aucun Upload : 0K")
break
;;
*)
echo "Réponse invalide $REPLY";;
esac
done
set +o posix
fi
# traitement des uploads
# crée la structure des dissiers pour éviter que WP intercepte les 404
rsync --compress --rsh="ssh -p $devPort" -a --exclude 'wp-content/uploads/cache' --include='*/' --exclude='*' --info=progress2 $devUserName@$devHost:$projectDevPath/wp-content/uploads/ $projectDestPath/wp-content/uploads/
case $upl in
"Complet : $uploadSizeTotal")
rsync --compress --rsh="ssh -p $devPort" -a --exclude 'wp-content/uploads/cache' --info=progress2 $devUserName@$devHost:$projectDevPath/wp-content/uploads/ $projectDestPath/wp-content/uploads/
terminal-restore
echo -e " + Uploads wp-content/uploads/ \e[1;92mrécupérés\e[0m"
;;
"Année : /$(date +%Y)/ : $uploadSizeYear")
rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 $devUserName@$devHost:$projectDevPath/wp-content/uploads/$(date +%Y)/ $projectDestPath/wp-content/uploads/$(date +%Y)/
terminal-restore
echo -e " + Uploads wp-content/uploads/$(date +%Y)/ \e[1;92mrécupérés\e[0m"
;;
"Mois : /$(date +%Y)/$(date +%m)/ : $uploadSizeMonth")
rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 $devUserName@$devHost:$projectDevPath/wp-content/uploads/$(date +%Y)/$(date +%m)/ $projectDestPath/wp-content/uploads/$(date +%Y)/$(date +%m)/
terminal-restore
echo -e " + Uploads wp-content/uploads/$(date +%Y)/$(date +%m)/ \e[1;92mrécupérés\e[0m"
;;
"Aucun Upload : 0K")
terminal-restore
;;
*)
echo "Réponse invalide $REPLY";;
esac
terminal-save
echo " + SERVEUR DE DEV : dump de la base de donnée"
ssh -p $devPort -q $devUserName@$devHost "wp --path=$projectDevPath db export --add-drop-table \$HOME/$projectShortName.sql"
echo
echo "récupération de la bdd en local > $HOME/$projectShortName.sql"
rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 $devUserName@$devHost:\$HOME/$projectShortName.sql $HOME/$projectShortName.sql || {
echo
echo -e "\033[1;31mErreur\033[0m commande impossible"
echo
echo "rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 $devUserName@$devHost:\$HOME/$projectShortName.sql $HOME/$projectShortName.sql"
echo
exit 1
}
ssh -p $devPort -q $devUserName@$devHost "rm \$HOME/$projectShortName.sql"
terminal-restore
echo -e " + Base de donnée \e[1;92mrécupérée \e[0mvers \e[1m$HOME/$projectShortName.sql\e[0m"
terminal-save
# vérification des requirements depuis composer.json (racine et thème).
terminal-switch-second
export COMPOSER_ALLOW_SUPERUSER=1;
cd $projectDestPath || exit
if [ -f "composer.json" ]; then
ext=$($phpCliPath /usr/local/bin/composer --no-interaction check-platform-reqs | grep 'ext-' | grep " missing" | awk '{print $1}' | sed -e "s/^ext-//" | sed "s/.*/php$requirePhpVersion-&/" | tr '\n' ' ')
if [ "" != "$ext" ]; then
apt-check $ext
fi
fi
cd $projectTheme || exit
if [ -f "composer.json" ]; then
ext=$($phpCliPath /usr/local/bin/composer --no-interaction check-platform-reqs | grep 'ext-' | grep " missing" | awk '{print $1}' | sed -e "s/^ext-//" | sed "s/.*/php$requirePhpVersion-&/" | tr '\n' ' ')
if [ "" != "$ext" ]; then
apt-check $ext
fi
fi
terminal-switch-first
echo
echo "Récupération du contenu (hors uploads) vers $projectDestPath"
rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 --exclude '*.log' --exclude 'node_modules' --exclude 'wp-content/uploads/cache' --exclude 'wp-content/wflogs' --exclude 'dploy.yaml' --exclude '.scannerwork/' --exclude 'wp-content/uploads/*' $devUserName@$devHost:$projectDevPath $projectDestPath || {
echo
echo -e "\033[1;31mErreur\033[0m commande en erreur"
echo
echo "rsync --compress --rsh="ssh -p $devPort" -a --info=progress2 --exclude '*.log' --exclude 'wp-content/cache/*' --exclude 'wp-content/uploads/*' $devUserName@$devHost:$projectDevPath $projectDestPath"
echo
echo "Notez que le script va continuer mais le site pourrait être incomplet / corrompu"
echo
read ok
}
terminal-restore
echo -e " + Fichiers \e[1;92mrécupérés \e[0mvers \e[1m$projectDestPath\e[0m"