summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2021-12-15 10:45:58 +0100
committerPatrick Spek <p.spek@tyil.nl>2021-12-15 10:45:58 +0100
commit5c086bc52fa3a226bcf706b1f420a5d98ea377dd (patch)
treeda5b28238542247efbe36c49cbc6cfd4e49f3e36 /bin
parent64e0495846f8b680288280920cba6bcb28e4092f (diff)
Redo most of the blog in Hugo
Missing posts will have to be added later
Diffstat (limited to 'bin')
-rwxr-xr-xbin/make-docker16
-rwxr-xr-xbin/make-feeds71
-rwxr-xr-xbin/make-mimetypes36
-rwxr-xr-xbin/publish75
4 files changed, 0 insertions, 198 deletions
diff --git a/bin/make-docker b/bin/make-docker
deleted file mode 100755
index 9a1a156..0000000
--- a/bin/make-docker
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /usr/bin/env perl6
-
-use v6.c;
-
-#| Create a docker image of the blog.
-sub MAIN (
- #| The tag to use for the docker image.
- Str:D :$tag = "tyil/blog:latest",
-) {
- my IO::Path $basedir = $*PROGRAM.resolve.parent(2);
- chdir $basedir;
-
- run « bundle »;
- run « bundle exec jekyll build »;
- run « docker build -t "$tag" . »;
-}
diff --git a/bin/make-feeds b/bin/make-feeds
deleted file mode 100755
index d8df2c9..0000000
--- a/bin/make-feeds
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU Affero General Public License as published by the Free
-# Software Foundation, either version 3 of the License, or (at your option) any
-# later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
-# details.
-
-readonly ROOTDIR="$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)"
-
-main()
-{
- # Handle opts
- while getopts ":h" opt
- do
- case "$opt" in
- h) usage && exit 0 ;;
- *)
- printf "Invalid option passed: %s\n" "$OPTARG" >&2
- ;;
- esac
- done
-
- shift $(( OPTIND - 1 ))
-
- # Make a list of all unique tags
- tags="$(mktemp)"
- awk '/^tags:/ { for (i=2; i<=NF; i++) print $i }' "$ROOTDIR/src/_posts/"* \
- | sort \
- | uniq \
- > "$tags"
-
- # Create a feed for each tag
- mkdir -p -- "$ROOTDIR/src/feed"
- mkdir -p -- "$ROOTDIR/src/atom"
-
- while read -r tag
- do
- lc_tag="$(printf "%s" "$tag" | tr "[:upper:]" "[:lower:]")"
-
- echo "Creating RSS 2.0 feed for $lc_tag"
- TAG="$tag" envsubst < "$ROOTDIR/share/feed-rss2.xml" > "$ROOTDIR/src/feed/$lc_tag.xml"
-
- echo "Creating Atom feed for $lc_tag"
- TAG="$tag" envsubst < "$ROOTDIR/share/feed-atom.xml" > "$ROOTDIR/src/atom/$lc_tag.xml"
-
- unset lc_tag
- done < "$tags"
-
- # Clean up
- rm -f -- "$tags"
-}
-
-usage()
-{
- cat <<EOF
-Usage:
- ${0##*/} -h
-
-Generate all the seperate feeds for each tag used in posts.
-
-Options:
- -h Show this help text and exit.
-EOF
-}
-
-main "$@"
diff --git a/bin/make-mimetypes b/bin/make-mimetypes
deleted file mode 100755
index 64c9120..0000000
--- a/bin/make-mimetypes
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env perl6
-
-use v6.c;
-
-sub MAIN (
- Str:D :$default = "application/octet-stream",
-) {
- my IO::Path $mime-types = "/etc/mime.types".IO;
-
- die "No $mime-types.absolute()" unless $mime-types.f;
-
- my %types;
-
- for $mime-types.lines -> $line {
- my ($mimetype, @extensions) = $line.words;
-
- for @extensions -> $extension {
- %types{$extension} = $mimetype;
- }
- }
-
- print-conf(%types, $default);
-}
-
-sub print-conf (
- %mimetypes,
- Str:D $default,
-) {
- say "mimetype.assign = (";
-
- for %mimetypes.kv -> $extension, $type {
- say "\t\".$extension\" => \"$type\",";
- }
-
- say "\"\" => \"$default\"\n)";
-}
diff --git a/bin/publish b/bin/publish
deleted file mode 100755
index e53541e..0000000
--- a/bin/publish
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU Affero General Public License as published by the Free
-# Software Foundation, either version 3 of the License, or (at your option) any
-# later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
-# details.
-
-readonly BASEDIR="$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)"
-
-main()
-{
- # Handle opts
- while getopts ":h" opt
- do
- case "$opt" in
- h) usage && exit 0 ;;
- *)
- printf "Invalid option passed: %s\n" "$OPTARG" >&2
- ;;
- esac
- done
-
- shift $(( OPTIND - 1 ))
-
- if [ $# -lt 1 ]
- then
- printf "Must specify a directory to publish the site at\n"
- exit 3
- fi
-
- output=$1
-
- # Ensure output directory exists
- if [ ! -d "$output" ]
- then
- printf "No such directory: %s\n" "$output"
- exit 4
- fi
-
- # Make ZFS snapshot
- if awk '$3 == "zfs" { print $2 }' < /proc/mounts | grep -q "$output"
- then
- zfs_subvol="$(zfs list -o name,mountpoint | awk '$2 == "'"$output"'" { print $1 }')"
- zfs_snapshot="$zfs_subvol@$(date +%FT%T)"
-
- printf "Creating ZFS snapshot %s\n" "$zfs_snapshot"
-
- sudo zfs snapshot "$zfs_snapshot"
- fi
-
- # Publish new site source
- cd -- "$BASEDIR/src"
- bundle install
- bundle exec jekyll build -d "$output"
-}
-
-usage()
-{
- cat <<EOF
-Usage:
- ${0##*/} -h
-
-Nondescript
-
-Options:
- -h Show this help text and exit.
-EOF
-}
-
-main "$@"