#!/usr/bin/env bash # shellcheck disable=SC2034 BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.branch]="" BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.generator]="required" BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.path]="" BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.remote]="" BASHTARD_PLAYBOOK_VARS[$BASHTARD_PLAYBOOK.repository]="required" playbook_add() { local path local remote local repo path="$(config "$BASHTARD_PLAYBOOK.path" "/var/www/$BASHTARD_PLAYBOOK")" remote="$(config "$BASHTARD_PLAYBOOK.remote" "origin")" repo="$(config "$BASHTARD_PLAYBOOK.repository")" mkdir -p -- "$path" git -C "$path" init git -C "$path" remote add "$remote" "$repo" playbook_sync } playbook_sync() { local branch local generator local path local remote branch="$(config "$BASHTARD_PLAYBOOK.branch" "master")" generator="$(config "$BASHTARD_PLAYBOOK.generator")" path="$(config "$BASHTARD_PLAYBOOK.path" "/var/www/$BASHTARD_PLAYBOOK")" remote="$(config "$BASHTARD_PLAYBOOK.remote" "origin")" git -C "$path" fetch "$remote" "$branch" git -C "$path" reset --hard "$remote/$branch" chgdir "$path" case "$generator" in hugo) hugo -D # This will generate all the draft content hugo # And this will generate the actual live blog, but won't remove the draft content ;; *) crit "$BASHTARD_PLAYBOOK/sync" "Unsupported generator '$generator'" esac } playbook_del() { rm -fr -- "$(config "$BASHTARD_PLAYBOOK.path" "/var/www/$BASHTARD_PLAYBOOK")" }