156 lines
4.4 KiB
Bash
Executable File
156 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
|
|
|