threadr.lostcave.ddnss.de/deployment-script.sh

36 lines
2.0 KiB
Bash

#!/bin/bash
echo "Deployment script for repository \"web-deployment\"
`date`
=============================================================================="
#activate ** globs
if [ -n "`shopt globstar | grep off`" ]; then shopt -s globstar; fi
#remove READMEs
rm ./threadr/**/README.md
#run the code variable replacement
echo -n "`find -name "*.php" -or -name "*.html" -or -name "*.css" -or -name "*.svg" | sed 's/^/python variable_grabbler.py /;s/$/ variable_grabbler.pass0.json/'`" | bash -
echo -n "`find -name "*.php" -or -name "*.html" -or -name "*.css" -or -name "*.svg" | sed 's/^/python variable_grabbler.py /;s/$/ variable_grabbler.pass1.json/'`" | bash -
echo -n "`find -name "*.php" -or -name "*.html" -or -name "*.css" -or -name "*.svg" | sed 's/^/python variable_grabbler.py /;s/$/ variable_grabbler.pass2.json/'`" | bash -
#the run-once section
echo "Checking run-once script..."
echo "Setting permissions."
chmod +x run-once-script.sh
#run the script only if it has changed since the last time it was checked, save a checksum of it to /var/www/git/run-once to compare next time
echo -ne "import os, sys\nif \"`sha256sum run-once-script.sh`\" == \"`cat ../run-once`\":\n print \"File has not changed. Aborting.\"\n sys.exit()\nelse:\n print \"File has changed. Calculating checksum...\"\n os.system(\"sha256sum run-once-script.sh > ../run-once\")\n print \"\"\"Executing...\n==========\"\"\"\n os.system(\"./run-once-script.sh\")\n print \"\"\"==========\nDone.\"\"\"" | python
# The status page is not just symlinked like the other files just to have a backup in case something goes wrong.
# Not like that ever happened before....
echo "Replacing status page..."
cp -v ./strassenkind.php /var/www/strassenkind.ip/index.php
cp -v ./internal.css /var/www/strassenkind.ip/style.css
cp -v ./commands_git.conf /var/www/strassenkind.ip/
cp -v ./commands_ondemand.conf /var/www/strassenkind.ip/
cp -v ./commands_status.conf /var/www/strassenkind.ip/
echo "Done."
echo "==============================================================================
Done."