You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

121 lines
2.5 KiB

  1. #!/bin/bash
  2. set -e
  3. LIBRARY=/var/www/html/library
  4. WEBSITE=/var/www/html/hugopiratecare
  5. [ -d $WEBSITE ] || mkdir -p $WEBSITE
  6. WEBSITEPREVIEW=/var/www/html/hugopiratecare/_preview/
  7. [ -d $WEBSITEPREVIEW ] || mkdir -p $WEBSITEPREVIEW
  8. GIT_URL="https://git.memoryoftheworld.org/PirateCare/Syllabus"
  9. HUGO_PREVIEW_URL="https://syllabus.pirate.care/_preview/"
  10. GIT_PATH="git"
  11. HUGO_PATH="hugo"
  12. BRK="krb"
  13. SAVEIFS=$IFS
  14. TMP_WEBSITE=/tmp/website$RANDOM
  15. TMP_WEBSITEPREVIEW=/tmp/websitepreview$RANDOM
  16. d=`date`
  17. CWD=`pwd`
  18. while read oldrev newrev ref
  19. do
  20. refs=`$GIT_PATH diff-tree --no-commit-id --name-only $ref`
  21. IFS=$'\n'
  22. r=($refs)
  23. for (( i=0; i<${#r[@]}; i++ ))
  24. do
  25. if [ ${r[$i]} = "PUBLISH.trigger.md" ]; then
  26. cd $CWD
  27. $GIT_PATH clone . $TMP_WEBSITE
  28. cd $TMP_WEBSITE
  29. [ -d $WEBSITE ] || mkdir -p $WEBSITE
  30. if [ -d $WEBSITE ]; then
  31. safe-rm -rf ${WEBSITE}*
  32. fi
  33. $HUGO_PATH -e gitea -d $WEBSITE > ${TMP_WEBSITE}/last-commit-log.txt
  34. printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITE}/last-commit-log.txt
  35. mv ${TMP_WEBSITE}/last-commit-log.txt $WEBSITE
  36. cd /tmp/
  37. if [ -d $TMP_WEBSITE ]
  38. then
  39. safe-rm -rf $TMP_WEBSITE
  40. fi
  41. BRK="brk"
  42. break
  43. fi
  44. done
  45. if [ $BRK = "brk" ]; then
  46. break
  47. fi
  48. cd $CWD
  49. refs=`$GIT_PATH show --format="%s" -s`
  50. IFS=$' '
  51. r=($refs)
  52. for (( i=0; i<${#r[@]}; i++ ))
  53. do
  54. if [ ${r[$i]} = "!publish!" ]; then
  55. $GIT_PATH clone . $TMP_WEBSITE
  56. cd $TMP_WEBSITE
  57. [ -d $WEBSITE ] || mkdir -p $WEBSITE
  58. if [ -d $WEBSITE ]; then
  59. safe-rm -rf ${WEBSITE}*
  60. fi
  61. $HUGO_PATH -e gitea -d $WEBSITE > ${TMP_WEBSITE}/last-commit-log.txt
  62. printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITE}/last-commit-log.txt
  63. mv $TMP_WEBSITE/last-commit-log.txt $WEBSITE
  64. cd /tmp/
  65. if [ -d $TMP_WEBSITE ]; then
  66. safe-rm -rf $TMP_WEBSITE
  67. fi
  68. break
  69. fi
  70. done
  71. done
  72. cd $CWD
  73. $GIT_PATH clone . $TMP_WEBSITEPREVIEW
  74. cd $TMP_WEBSITEPREVIEW
  75. [ -d $WEBSITEPREVIEW ] || mkdir -p $WEBSITEPREVIEW
  76. [ -d data ] || mkdir -p data
  77. echo 'edit = true' > data/myvars.toml
  78. echo 'giturl="'${GIT_URL}'"' >> data/myvars.toml
  79. if [ -d $WEBSITEPREVIEW ]; then
  80. safe-rm -rf $WEBSITEPREVIEW
  81. fi
  82. $HUGO_PATH -e gitea -d $WEBSITEPREVIEW > ${TMP_WEBSITEPREVIEW}/last-commit-log.txt
  83. printf "\n>> $d\n>> `date`" >> ${TMP_WEBSITEPREVIEW}/last-commit-log.txt
  84. mv ${TMP_WEBSITEPREVIEW}/last-commit-log.txt $WEBSITEPREVIEW
  85. if [ -d $TMP_WEBSITEPREVIEW ]; then
  86. safe-rm -rf $TMP_WEBSITEPREVIEW
  87. fi
  88. ln -sf $LIBRARY $WEBSITE
  89. ln -sf $LIBRARY $WEBSITEPREVIEW
  90. IFS=$SAVEIFS