#!/usr/local/bin/bash italic="\033[3m" underline="\033[4m" ita_under="\033[3;4m" bgd="\033[1;4;31m" red="\033[1;31m" bold="\033[1m" box="\033[1;41m" reset="\033[0m" 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 if ! command -v mkdocs &> /dev/null then echo -e "${bold}Mkdocs${reset} could not be found !\n" echo -e "You should install ${bold}Mkdocs${reset}:\n" echo -e " - pip install mkdocs" echo -e " - pipx install mkdocs" echo -e " - pipx inject mkdocs mkdocs-material mkdocs-material-extensions mkdocs-minify-plugin mkdocs-git-revision-date-localized-plugin mkdocs-pdf-export-plugin fontawesome_markdown" exit 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 mkdocs build --clean : <<'END_COMMENT' if [[ "$device" == "airbook" ]]; then $HOME/Documents/venv/mkdocs/bin/mkdocs build --clean else mkdocs build --clean fi END_COMMENT 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