#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: xmlentry FILENAME xmlentry -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message FILENAME the name of the input .md file Process FILE, and generate an Atom feed entry. Examples: Generate the XML entry for a TIL: $ xmlentry src/til/a-til.md > src/til/a-til.xml EOF } for flag in "$@"; do case "$flag" 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" envsubst < src/lib/entry.xml head -n1 < "${FILENAME%.*}.htmlbody" | htmlesc printf ' </summary>\n' printf ' <content type="html" xml:base="%s">\n' "${url:?}" htmlesc < "${FILENAME%.*}.htmlbody" printf ' </content>\n' printf ' </entry>\n'