Files
bash/mkbuild.sh
Bruno21 d5020f5e55 mkbuild
-test si le seveur est dispo
-affichage d’une notif
2022-08-03 15:35:19 +02:00

157 lines
4.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.local" ]]; then
project_dir=$HOME/Documents/docs
else
project_dir=$HOME/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/"
server1[port]=42666
# server2: ovh.net
declare -A server2
server2[user]="funnymac"
server2[server]="ftp.cluster011.ovh.net"
server2[dest]="www/$folder/"
server2[port]=22
# server3: maboiteverte.fr
declare -A server3
server3[user]="bruno"
server3[server]="ftp.maboiteverte.fr"
server3[dest]="httpdocs/$folder/"
server3[port]=22
notification() {
#path_img=`dirname "$0"`
path_img=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
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"
image="$path_img/error.png"
fi
#echo "$image"
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"
terminal-notifier -title "$1" -message "$message" -sound "$sound" -appIcon "$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
if nmap "${server1[server]}" -PN -p ${server1[port]} | grep open &>/dev/null; then
echo ""
echo -e "${bold}*********************************************"
echo -e "* Sending Docs to ${server1[server]}... *"
echo -e "*********************************************${reset}"
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
else
notification "Server ${server1[server]} down !" "${server1[server]}" 1
echo -e "\n${bold}${red}Server ${server1[server]} down !${reset}\n"
fi
if nmap "${server2[server]}" -PN -p ${server2[port]} | grep open &>/dev/null; then
echo ""
echo -e "${bold}***********************************************"
echo -e "* Sending Docs to ${server2[server]}... *"
echo -e "***********************************************${reset}"
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
else
notification "Server ${server2[server]} down !" "${server2[server]}" 1
echo -e "\n${bold}${red}Server ${server2[server]} down !${reset}\n"
fi
if nmap "${server3[server]}" -PN -p ${server3[port]} | grep open &>/dev/null; then
echo ""
echo -e "${bold}********************************************"
echo -e "* Sending Docs to ${server3[server]}... *"
echo -e "********************************************${reset}"
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
else
notification "Server ${server3[server]} down !" "${server3[server]}" 1
echo -e "\n${bold}${red}Server ${server3[server]} down !${reset}\n"
fi