Files
bash/mkbuild.sh
2022-02-16 13:20:38 +01:00

126 lines
3.4 KiB
Bash
Executable File

#!/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