justfiles for automating various tasks on my workstation
1# New gemlog entry 2[group('blogging')] 3newgemlog slug: 4 #!/usr/bin/env bash 5 GEMLOG_DIR="${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog" 6 FILENAME_DATE=$(date '+%Y-%m-%d') 7 FILENAME="${FILENAME_DATE}-{{ slug }}.gmi" 8 cat <<EOF >"${GEMLOG_DIR}/${FILENAME}" 9 # Title 10 11 ## END 12 Last updated: $FILENAME_DATE 13 14 => ../gemlog Gemlog archive 15 => ../ hyperreal.coffee 16 EOF 17 nvim "${GEMLOG_DIR}/${FILENAME}" 18 19# Edit gemlog atom feed 20[group('blogging')] 21edit-gemlog-atom: 22 #!/usr/bin/env bash 23 nvim "${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog/atom.xml" 24 25# Edit gemlog index 26[group('blogging')] 27edit-gemlog-index: 28 #!/usr/bin/env bash 29 nvim "${HOME}/nextcloud/sites/gemini/hyperreal.coffee/gemlog/index.gmi" 30 31# Publish changes to capsule 32[group('blogging')] 33publish-gemini: 34 #!/usr/bin/env bash 35 ssh jas@hyperreal.carp-wyvern.ts.net \ 36 -- \ 37 rm -rf /home/jas/public/gemini/hyperreal.coffee 38 rsync \ 39 -aAXP \ 40 "${HOME}/nextcloud/sites/gemini/hyperreal.coffee" \ 41 jas@hyperreal.carp-wyvern.ts.net:/home/jas/public/gemini 42 ssh jas@hyperreal.carp-wyvern.ts.net \ 43 -- \ 44 tree /home/jas/public/gemini 45 echo 46 echo "Gemini capsule published successfully." 47 48# New blog entry 49[group('blogging')] 50newblog slug: 51 #!/usr/bin/env bash 52 BLOG_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee" 53 FILENAME_DATE=$(date '+%Y-%m-%d') 54 POST_DATE=$(date '+%Y-%m-%d %H:%M:%S') 55 FILENAME="${FILENAME_DATE}-{{ slug }}.md" 56 cat <<EOF >"${BLOG_DIR}/content/posts/${FILENAME}" 57 +++ 58 title = '' 59 date = $POST_DATE 60 tags = [] 61 +++ 62 63 EOF 64 nvim "${BLOG_DIR}/content/posts/${FILENAME}" 65 66# New feelslog entry 67[group('blogging')] 68newfeels tags: 69 #!/usr/bin/env bash 70 DATE=$(date '+%Y-%m-%d') 71 TAGS="$@" 72 FEELSDIR="${HOME}/repos/tildegit.org/hyperreal/feelslog" 73 PREV_ENTRY=$(find "$FEELSDIR/src" -name "*.md" -exec basename {} \; | sort | tail -1 | cut -c 18-21) 74 NEXT_ENTRY="00$(echo "$PREV_ENTRY" + "1" | bc)" 75 NEXT_ENTRY_FILENAME="${FEELSDIR}/src/${DATE}-entry-${NEXT_ENTRY}.md" 76 URL="$(echo "$DATE" | tr "-" "/")/entry-${NEXT_ENTRY}/" 77 cat <<EOF >"$NEXT_ENTRY_FILENAME" 78 --- 79 title: Entry $NEXT_ENTRY 80 date: $(date '+%Y-%m-%d %H:%M:%S %z') 81 tags: $(echo "${TAGS// /, }") 82 slug: entry-$NEXT_ENTRY 83 --- 84 85 EOF 86 nvim "$NEXT_ENTRY_FILENAME" 87 echo "URL: https://feels.hyperreal.coffee/${URL}" 88 89# Publish feelslog 90[group('blogging')] 91publish-feels: 92 #!/usr/bin/env bash 93 set -euo pipefail 94 BSSG_DIR="${HOME}/repos/brew.bsd.cafe/stefano/BSSG" 95 if [ ! -d "$BSSG_DIR" ]; then 96 mkdir -p "${HOME}/repos/brew.bsd.cafe/stefano" 97 git clone https://brew.bsd.cafe/stefano/BSSG.git "$BSSG_DIR" 98 else 99 cd "$BSSG_DIR" || exit 1 100 git pull 101 fi 102 FEELS_CONFIG="${HOME}/repos/tildegit.org/hyperreal/feelslog/config.sh.local" 103 "${BSSG_DIR}/bssg.sh" build --config "$FEELS_CONFIG" 104 105# vim: ts=4 sts=4 sw=4 et ft=just