Compare commits

...

3 Commits

2 changed files with 35 additions and 11 deletions

View File

@ -4,18 +4,18 @@
repo: "https://github.com/CPunch/openpunk.git"
dest: "/var/www/{{ domain }}"
# TODO: make idempotent (call the updateBlog script !!)
- name: Build blog
command:
cmd: hugo
chdir: "/var/www/{{ domain }}"
- name: Install updateBlog script
template:
src: templates/updateBlog
dest: /usr/local/bin/updateBlog
mode: u+rx
- name: Build blog
command:
cmd: updateBlog
register: blog_out
changed_when: blog_out.stdout != "up to date"
# Rebuild blog every hour
- name: Setup blog cron job
cron:

View File

@ -1,8 +1,32 @@
#!/bin/bash
cd /var/www/{{ domain }}
/usr/bin/git fetch origin
/usr/bin/git reset --hard origin/main
# build sites
/usr/bin/hugo --cleanDestinationDir --minify -d public -b https://{{ domain }}
/usr/bin/hugo --cleanDestinationDir --minify -d tor -b {{ onionDomain }}
PUBLIC_DIR=public
TOR_DIR=tor
buildBlog () {
hugo --cleanDestinationDir --minify -d $PUBLIC_DIR -b https://{{ domain }}
hugo --cleanDestinationDir --minify -d $TOR_DIR -b {{ onionDomain }}
}
git fetch origin
UPSTREAM=${1:-'@{u}'}
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse "$UPSTREAM")
BASE=$(git merge-base @ "$UPSTREAM")
if [ $LOCAL = $REMOTE ]; then
# this string is hardcoded && checked by the 'Build blog' task
# to check for changes (changed_when)
echo "up to date"
elif [ $LOCAL = $BASE ]; then
# there are changes to reset too so we need to rebuild
echo "missing changes !!"
git reset --hard origin/main
buildBlog
fi
if [ ! -d "$PUBLIC_DIR" ] || [ ! -d "$TOR_DIR" ]; then
# probably first time setup
echo "missing directories !!"
buildBlog
fi