diff options
author | EuAndreh <eu@euandre.org> | 2021-06-26 19:32:24 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-06-26 21:32:32 -0300 |
commit | 2308ea943efa216280d5a5137ac9a351a5d2ca08 (patch) | |
tree | 7b84cae02c338f24fd56b7b65ca957df6517e2d1 /aux/workflow/commonmark.sh | |
parent | TODOs.md: Add #task-7c5cd2aa-6d92-0423-bfa7-81f2e8436586 (diff) | |
download | git-permalink-2308ea943efa216280d5a5137ac9a351a5d2ca08.tar.gz git-permalink-2308ea943efa216280d5a5137ac9a351a5d2ca08.tar.xz |
aux/workflow/commonmark.sh: Use getopts for arguments
Diffstat (limited to 'aux/workflow/commonmark.sh')
-rwxr-xr-x | aux/workflow/commonmark.sh | 60 |
1 files changed, 46 insertions, 14 deletions
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh index 7267145..2333f5d 100755 --- a/aux/workflow/commonmark.sh +++ b/aux/workflow/commonmark.sh @@ -1,19 +1,51 @@ #!/bin/sh set -eu -PROJECT_UC="$1" -F="$2" -OUTDIR="$3" -OUT="${4:-${F%.*}.html}" +while getopts 'N:o:r:w:' flag; do + case "$flag" in + N) + PROJECT_UC="$OPTARG" + ;; + o) + OUTDIR="$OPTARG" + ;; + r) + IN_FILE="$OPTARG" + ;; + w) + OUT_FILE="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC' +assert_arg "${OUTDIR:-}" '-o OUTDIR' +assert_arg "${IN_FILE:-}" '-i IN_FILE' + +if [ -z "${OUT_FILE:-}" ]; then + OUT_FILE="${IN_FILE%.md}.html" +fi + pandoc \ - --toc \ - --highlight-style pygments \ - --toc-depth=2 \ - -s \ - --metadata title="$PROJECT_UC - ${F%.*}" \ - --metadata lang=en \ - -r commonmark \ - -w html \ - -H aux/workflow/favicon.html \ - < "$F" > "$OUTDIR/$OUT" + --toc \ + --highlight-style pygments \ + --toc-depth=2 \ + -s \ + --metadata title="$PROJECT_UC - ${IN_FILE%.md}" \ + --metadata lang=en \ + -r commonmark \ + -w html \ + -H aux/workflow/favicon.html \ + < "$IN_FILE" > "$OUTDIR/$OUT_FILE" |