#!/bin/bash set -e LIBRARY=/var/www/html/library WEBSITE=/var/www/html/hugopiratecare [ -d $WEBSITE ] || mkdir -p $WEBSITE WEBSITEPREVIEW=/var/www/html/hugopiratecare/_preview/ [ -d $WEBSITEPREVIEW ] || mkdir -p $WEBSITEPREVIEW GIT_URL="https://git.memoryoftheworld.org/PirateCare/Syllabus" HUGO_PREVIEW_URL="https://syllabus.pirate.care/_preview/" GIT_PATH="git" HUGO_PATH="hugo" BRK="krb" SAVEIFS=$IFS TMP_WEBSITE=/tmp/website$RANDOM TMP_WEBSITEPREVIEW=/tmp/websitepreview$RANDOM d=`date` CWD=`pwd` while read oldrev newrev ref do refs=`$GIT_PATH diff-tree --no-commit-id --name-only $ref` IFS=$'\n' r=($refs) for (( i=0; i<${#r[@]}; i++ )) do if [ ${r[$i]} = "PUBLISH.trigger.md" ]; then cd $CWD $GIT_PATH clone . $TMP_WEBSITE cd $TMP_WEBSITE [ -d $WEBSITE ] || mkdir -p $WEBSITE if [ -d $WEBSITE ]; then safe-rm -rf ${WEBSITE}* fi $HUGO_PATH -e gitea -d $WEBSITE > ${TMP_WEBSITE}/last-commit-log.txt printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITE}/last-commit-log.txt mv ${TMP_WEBSITE}/last-commit-log.txt $WEBSITE cd /tmp/ if [ -d $TMP_WEBSITE ] then safe-rm -rf $TMP_WEBSITE fi BRK="brk" break fi done if [ $BRK = "brk" ]; then break fi cd $CWD refs=`$GIT_PATH show --format="%s" -s` IFS=$' ' r=($refs) for (( i=0; i<${#r[@]}; i++ )) do if [ ${r[$i]} = "!publish!" ]; then $GIT_PATH clone . $TMP_WEBSITE cd $TMP_WEBSITE [ -d $WEBSITE ] || mkdir -p $WEBSITE if [ -d $WEBSITE ]; then safe-rm -rf ${WEBSITE}* fi $HUGO_PATH -e gitea -d $WEBSITE > ${TMP_WEBSITE}/last-commit-log.txt printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITE}/last-commit-log.txt mv $TMP_WEBSITE/last-commit-log.txt $WEBSITE cd /tmp/ if [ -d $TMP_WEBSITE ]; then safe-rm -rf $TMP_WEBSITE fi break fi done done cd $CWD $GIT_PATH clone . $TMP_WEBSITEPREVIEW cd $TMP_WEBSITEPREVIEW [ -d $WEBSITEPREVIEW ] || mkdir -p $WEBSITEPREVIEW [ -d data ] || mkdir -p data echo 'edit = true' > data/myvars.toml echo 'giturl="'${GIT_URL}'"' >> data/myvars.toml if [ -d $WEBSITEPREVIEW ]; then safe-rm -rf $WEBSITEPREVIEW fi $HUGO_PATH -e gitea -d $WEBSITEPREVIEW > ${TMP_WEBSITEPREVIEW}/last-commit-log.txt printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITEPREVIEW}/last-commit-log.txt mv ${TMP_WEBSITEPREVIEW}/last-commit-log.txt $WEBSITEPREVIEW if [ -d $TMP_WEBSITEPREVIEW ]; then safe-rm -rf $TMP_WEBSITEPREVIEW fi ln -sf $LIBRARY $WEBSITE ln -sf $LIBRARY $WEBSITEPREVIEW IFS=$SAVEIFS