# New blog entry [group('blogging')] newblog slug: #!/usr/bin/env bash BLOG_DIR="${HOME}/repos/knot.moonshadow.dev/hyperreal.coffee/http" FILENAME_DATE=$(date '+%Y-%m-%d') POST_DATE=$(date '+%Y-%m-%d %H:%M:%S') FILENAME="${FILENAME_DATE}-{{ slug }}.md" cat <"${BLOG_DIR}/content/posts/${FILENAME}" +++ title = '' date = $POST_DATE tags = [] +++ EOF nvim "${BLOG_DIR}/content/posts/${FILENAME}" echo "To convert to gemlog:" echo "blog2gemlog ${BLOG_DIR}/content/posts/${FILENAME} \"Blog title\"" # Convert website page changes to gemtext and send to capsule [group('blogging')] board-capsule: #!/usr/bin/env bash WEBSITE_DIR="${HOME}/repos/knot.moonshadow.dev/hyperreal.coffee/http" CAPSULE_DIR="${HOME}/repos/knot.moonshadow.dev/hyperreal.coffee/gemini" find "${WEBSITE_DIR}/content" \ -maxdepth 1 \ -type f \ -not -name "_index.md" \ -exec md2gemini -w -d "$CAPSULE_DIR" -f -m {} \; echo "To push and deploy changes, run push-deploy" # Push hyperreal.coffee changes to git and deploy website and capsule [group('blogging')] push-deploy: #!/usr/bin/env bash set -euo pipefail HC_DIR="${HOME}/repos/knot.moonshadow.dev/hyperreal.coffee" cd "$HC_DIR" msg_info="$(( $(git rev-list --count HEAD) + 1)) $(date '+%Y-%m-%d %H:%M:%S')" git add . git commit -m "Update: ${msg_info}" git push -u origin main WEBSITE_DIR="${HC_DIR}/http" CAPSULE_DIR="${HC_DIR}/gemini" PUBLIC_DIR="${HOME}/public_html" rm -rf "${PUBLIC_DIR}/"* hugo --gc --minify -d "${PUBLIC_DIR}" -s "$WEBSITE_DIR" rsync \ -az \ --delete \ "${PUBLIC_DIR}"/ \ hyperreal@hyperreal.carp-wyvern.ts.net:/home/hyperreal/staging/html ssh hyperreal@hyperreal.carp-wyvern.ts.net \ -- doas rsync -a --chown root:daemon --delete /home/hyperreal/staging/html/ /var/www/htdocs/hyperreal.coffee rsync \ -avz \ --delete \ "$CAPSULE_DIR"/ \ hyperreal@hyperreal.carp-wyvern.ts.net:/home/hyperreal/staging/gemini ssh hyperreal@hyperreal.carp-wyvern.ts.net \ -- doas -u _gmid rsync -a --delete /home/hyperreal/staging/gemini/ /var/gemini/hyperreal.coffee echo echo "Website and capsule successfully deployed" # New feelslog entry [group('blogging')] newfeels tags: #!/usr/bin/env bash DATE=$(date '+%Y-%m-%d') TAGS="$@" FEELSDIR="${HOME}/repos/tildegit.org/hyperreal/feelslog" PREV_ENTRY=$(find "$FEELSDIR/src" -name "*.md" -exec basename {} \; | sort | tail -1 | cut -c 18-21) NEXT_ENTRY="00$(echo "$PREV_ENTRY" + "1" | bc)" NEXT_ENTRY_FILENAME="${FEELSDIR}/src/${DATE}-entry-${NEXT_ENTRY}.md" URL="$(echo "$DATE" | tr "-" "/")/entry-${NEXT_ENTRY}/" cat <"$NEXT_ENTRY_FILENAME" --- title: Entry $NEXT_ENTRY date: $(date '+%Y-%m-%d %H:%M:%S %z') tags: $(echo "${TAGS// /, }") slug: entry-$NEXT_ENTRY --- EOF nvim "$NEXT_ENTRY_FILENAME" echo "URL: https://feels.hyperreal.coffee/${URL}" # Publish feelslog [group('blogging')] publish-feels: #!/usr/bin/env bash set -euo pipefail BSSG_DIR="${HOME}/repos/brew.bsd.cafe/stefano/BSSG" if [ ! -d "$BSSG_DIR" ]; then mkdir -p "${HOME}/repos/brew.bsd.cafe/stefano" git clone https://brew.bsd.cafe/stefano/BSSG.git "$BSSG_DIR" else cd "$BSSG_DIR" || exit 1 git pull fi FEELS_CONFIG="${HOME}/repos/tildegit.org/hyperreal/feelslog/config.sh.local" "${BSSG_DIR}/bssg.sh" build --config "$FEELS_CONFIG" # vim: ts=4 sts=4 sw=4 et ft=just