#!/usr/local/bin/bash if [ "$1" == "-h" ]; then echo -e "\\033[93mmkbuild.sh\\033[0m" echo "Build MkDocs project and send him on servers" echo echo "USAGE: mkbuild" echo echo " -h display this help" echo exit 0 fi device=$(hostname) if [[ "$device" == "airbook" ]]; then project_dir=/Users/bruno/Documents/docs else project_dir=/Users/bruno/project fi #exe=/usr/local/bin/ folder="central_docs" # server1: clicclac.synology.me declare -A server1 server1[user]="bruno" server1[server]="clicclac.synology.me" server1[dest]="/volume1/web/$folder/" # server2: ovh.net declare -A server2 server2[user]="funnymac" server2[server]="ftp.cluster011.ovh.net" server2[dest]="www/$folder/" # server3: maboiteverte.fr declare -A server3 server3[user]="bruno" server3[server]="ftp.maboiteverte.fr" server3[dest]="httpdocs/$folder/" notification() { path_img=`dirname "$0"` if [ $3 -eq 0 ]; then sound="Glass" message="Envoi terminé sur $2 !" image="$path_img/success.png" else sound="Basso" message="Echec lors de l'envoi sur $2 : erreur $result" image="$path_img/error.png" fi if [[ "$OSTYPE" == "linux-gnu" ]] && [ -x "$(command -v zenity)" ]; then zenity --title="$1" --notification --text="$message" elif [[ "$OSTYPE" == "darwin"* ]] && [ -x "$(command -v terminal-notifier)" ]; then terminal-notifier -title "$1" -message "$message" -sound "$sound" -contentImage "$image" fi } cd $project_dir || exit if [[ "$device" == "airbook" ]]; then $HOME/Documents/venv/mkdocs/bin/mkdocs build --clean else mkdocs build --clean fi echo "" echo "*********************************************" echo "* sending Docs to ${server1[server]}... *" echo "*********************************************" echo "" rsync -e '/usr/bin/ssh -p 42666' --exclude-from="$HOME/.exclude-rsync.txt" --rsync-path=/bin/rsync -zarvh --stats --progress "$folder/" ${server1[user]}@${server1[server]}:${server1[dest]} result=$? notification "MkDocs: sending Docs to ${server1[server]}..." "${server1[server]}" $result echo "" echo "***********************************************" echo "* sending Docs to ${server2[server]}... *" echo "***********************************************" echo "" rsync --exclude-from="$HOME/.exclude-rsync.txt" -zarvh --stats --progress "$folder/" ${server2[user]}@${server2[server]}:${server2[dest]} result=$? notification "MkDocs: sending Docs to ${server2[server]}..." "${server2[server]}" $result echo "" echo "********************************************" echo "* sending Docs to ${server3[server]}... *" echo "********************************************" echo "" rsync --exclude-from="$HOME/.exclude-rsync.txt" -zarvh --stats --progress "$folder/" ${server3[user]}@${server3[server]}:${server3[dest]} result=$? notification "MkDocs: sending Docs to ${server3[server]}..." "${server3[server]}" $result