#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: category FILENAME html -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message FILENAME the name of the input file .md file Process the FILENAME, and generate a the derived category files. Examples: Generate the categories for a pastebin: $ categories src/a-paste.md > src/a-paste.categoryentry EOF } for f in "$@"; do case "$f" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) . src/lib.sh FILENAME="${1:-}" eval "$(assert_arg "$FILENAME" 'FILENAME')" # shellcheck source=/dev/null . "${FILENAME%.*}.conf" DIR="$(dirname "$FILENAME")" echo "${categories:-}" | tr ' ' '\n' | grep . | while read -r category; do echo "$FILENAME" > "$DIR/${date_iso:?}.$category.categorysort" done envsubst < src/lib/category.html