126 lines
3.4 KiB
Bash
Executable File
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
|