From 5c086bc52fa3a226bcf706b1f420a5d98ea377dd Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 15 Dec 2021 10:45:58 +0100 Subject: Redo most of the blog in Hugo Missing posts will have to be added later --- bin/make-docker | 16 ------------ bin/make-feeds | 71 --------------------------------------------------- bin/make-mimetypes | 36 -------------------------- bin/publish | 75 ------------------------------------------------------ 4 files changed, 198 deletions(-) delete mode 100755 bin/make-docker delete mode 100755 bin/make-feeds delete mode 100755 bin/make-mimetypes delete mode 100755 bin/publish (limited to 'bin') 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 < $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 <