justfiles for automating various tasks on my workstation

~blogging.just

Changed files
+60 -47
+60 -47
blogging.just
···
-
# New gemlog entry
[group('blogging')]
-
newgemlog slug:
#!/usr/bin/env bash
-
GEMLOG_DIR="${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog"
FILENAME_DATE=$(date '+%Y-%m-%d')
-
FILENAME="${FILENAME_DATE}-{{ slug }}.gmi"
-
cat <<EOF >"${GEMLOG_DIR}/${FILENAME}"
-
# Title
-
## END
-
Last updated: $FILENAME_DATE
-
-
=> ../gemlog Gemlog archive
-
=> ../ hyperreal.coffee
EOF
-
nvim "${GEMLOG_DIR}/${FILENAME}"
-
# Edit gemlog atom feed
[group('blogging')]
-
edit-gemlog-atom:
#!/usr/bin/env bash
-
nvim "${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog/atom.xml"
-
# Edit gemlog index
[group('blogging')]
-
edit-gemlog-index:
#!/usr/bin/env bash
-
nvim "${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog/index.gmi"
-
# Publish changes to capsule
[group('blogging')]
-
publish-gemini:
#!/usr/bin/env bash
-
ssh jas@hyperreal.carp-wyvern.ts.net \
-
-- \
-
rm -rf /home/jas/public/gemini/hyperreal.coffee
rsync \
-
-aAXP \
-
"${HOME}/nextcloud/sites/gemini/hyperreal.coffee" \
jas@hyperreal.carp-wyvern.ts.net:/home/jas/public/gemini
-
ssh jas@hyperreal.carp-wyvern.ts.net \
-
-- \
-
tree /home/jas/public/gemini
-
echo
-
echo "Gemini capsule published successfully."
-
# New blog entry
-
[group('blogging')]
-
newblog slug:
-
#!/usr/bin/env bash
-
BLOG_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee"
-
FILENAME_DATE=$(date '+%Y-%m-%d')
-
POST_DATE=$(date '+%Y-%m-%d %H:%M:%S')
-
FILENAME="${FILENAME_DATE}-{{ slug }}.md"
-
cat <<EOF >"${BLOG_DIR}/content/posts/${FILENAME}"
-
+++
-
title = ''
-
date = $POST_DATE
-
tags = []
-
+++
-
-
EOF
-
nvim "${BLOG_DIR}/content/posts/${FILENAME}"
# New feelslog entry
[group('blogging')]
···
+
# New blog entry
[group('blogging')]
+
newblog slug:
#!/usr/bin/env bash
+
BLOG_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee/http"
FILENAME_DATE=$(date '+%Y-%m-%d')
+
POST_DATE=$(date '+%Y-%m-%d %H:%M:%S')
+
FILENAME="${FILENAME_DATE}-{{ slug }}.md"
+
cat <<EOF >"${BLOG_DIR}/content/posts/${FILENAME}"
+
+++
+
title = ''
+
date = $POST_DATE
+
tags = []
+
+++
EOF
+
nvim "${BLOG_DIR}/content/posts/${FILENAME}"
+
echo 'To add this entry to gemlog, run `blog2gmi ${BLOG_DIR}/content/posts/${FILENAME} "Blog Post Title"`'
+
# Convert blog entry to gemlog
[group('blogging')]
+
blog2gmi filename title:
#!/usr/bin/env bash
+
SCRIPT_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee/scripts"
+
BLOG_POST_FILE={{ filename }}
+
BLOG_POST_TITLE={{ title }}
+
"${SCRIPT_DIR}/blog2gemini ${BLOG_POST_FILE} ${BLOG_POST_TITLE}"
+
echo "To push and deploy changes, run `push-deploy`"
+
# Convert website page changes to gemtext and send to capsule
[group('blogging')]
+
board-capsule:
#!/usr/bin/env bash
+
WEBSITE_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee/http"
+
CAPSULE_DIR="${HOME}/repos/tildegit.org/hyperreal/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/tildegit.org/hyperreal/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 \
+
-avz \
+
--delete \
+
"${PUBLIC_DIR}"/ \
+
jas@hyperreal.carp-wyvern.ts.net:/home/jas/public/html
+
rsync \
+
-avz \
+
--delete \
+
"$CAPSULE_DIR"/ \
jas@hyperreal.carp-wyvern.ts.net:/home/jas/public/gemini
+
echo
+
echo "Website and capsule successfully deployed"
# New feelslog entry
[group('blogging')]