justfiles for automating various tasks on my workstation
1# New blog entry
2[group('blogging')]
3newblog slug:
4 #!/usr/bin/env bash
5 BLOG_DIR="${HOME}/repos/tildegit.org/hyperreal/hyperreal.coffee"
6 FILENAME_DATE=$(date '+%Y-%m-%d')
7 POST_DATE=$(date '+%Y-%m-%d %H:%M:%S')
8 FILENAME="${FILENAME_DATE}-{{ slug }}.md"
9 cat <<EOF >"${BLOG_DIR}/content/posts/${FILENAME}"
10 +++
11 title = ''
12 date = $POST_DATE
13 tags = []
14 +++
15
16 EOF
17 nvim "${BLOG_DIR}/content/posts/${FILENAME}"
18
19# New feelslog entry
20[group('blogging')]
21newfeels tags:
22 #!/usr/bin/env bash
23 DATE=$(date '+%Y-%m-%d')
24 TAGS="$@"
25 FEELSDIR="${HOME}/nextcloud/sites/feels.hyperreal.coffee"
26 PREV_ENTRY=$(find "$FEELSDIR/src" -name "*.md" -exec basename {} \; | sort | tail -1 | cut -c 18-21)
27 NEXT_ENTRY="00$(echo "$PREV_ENTRY" + "1" | bc)"
28 NEXT_ENTRY_FILENAME="${FEELSDIR}/src/${DATE}-entry-${NEXT_ENTRY}.md"
29 URL="$(echo "$DATE" | tr "-" "/")/entry-${NEXT_ENTRY}/"
30 cat <<EOF >"$NEXT_ENTRY_FILENAME"
31 ---
32 title: Entry $NEXT_ENTRY
33 date: $(date '+%Y-%m-%d %H:%M:%S %z')
34 tags: $(echo "${TAGS// /, }")
35 slug: entry-$NEXT_ENTRY
36 ---
37
38 EOF
39 nvim "$NEXT_ENTRY_FILENAME"
40 echo "URL: https://feels.hyperreal.coffee/${URL}"
41
42# Publish feelslog
43[group('blogging')]
44publish-feels:
45 #!/usr/bin/env bash
46 set -euo pipefail
47 BSSG_DIR="${HOME}/repos/brew.bsd.cafe/stefano/BSSG"
48 if [ ! -d "$BSSG_DIR" ]; then
49 mkdir -p "${HOME}/repos/brew.bsd.cafe/stefano"
50 git clone https://brew.bsd.cafe/stefano/BSSG.git "$BSSG_DIR"
51 fi
52 FEELS_CONFIG="${HOME}/nextcloud/sites/feels.hyperreal.coffee/config.sh.local"
53 OUTPUT_DIR="${HOME}/nextcloud/sites/feels.hyperreal.coffee/output"
54 SITE_URL="https://feels.hyperreal.coffee"
55 REMOTE_USER="jas"
56 REMOTE_HOST="hyperreal.carp-wyvern.ts.net"
57 REMOTE_PATH="/home/jas/public/feels"
58 cd "$BSSG_DIR"
59 "${BSSG_DIR}/bssg.sh" build --config "$FEELS_CONFIG"
60 rsync -az --delete "$OUTPUT_DIR"/ "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}"
61 echo
62 echo "Site deployed successfully"
63
64# vim: ts=4 sts=4 sw=4 et ft=just