#!/usr/bin/env dash

set -e -u

# the name of this program
progname="$(basename "${0}")"

help_text="Usage: ${progname} [OPTION...] FILENAME

Compose a new note

Options:
  -h            Print this help and exit
  -r            Whether this note should be a reply
"

usage() {
	printf '%s' "${help_text}"
}

# when the user passess bad args, send a msg to stderr and exit
# usage: bad_option <option> <reason>
bad_option() {
	echo "${progname}: option ${1}: ${2}" >&2
	usage >&2
	exit 1
}

reply='0'
url=''

while getopts "hr" flags; do
	case ${flags} in
		h)
			usage
			exit 0
			;;
		r)
			reply='1'
			shift
			url="$1"
			shift
			;;
		*)
			bad_option "${flags}" 'invalid option'
			;;
	esac
done

filename="notes/$1.md"

if [ "$reply" = '1' ]; then
	hugo new --kind reply "$filename"
else
	hugo new "$filename"
fi

if [ "$url" != '' ]; then
	sd -s 'replyURI: ""' "replyURI: \"$url\"" "content/$filename"
fi

"${EDITOR-nvim}" "content/$filename"

# vi:ft=sh