diff options
Diffstat (limited to 'aux/workflow/TODOs.sh')
-rwxr-xr-x | aux/workflow/TODOs.sh | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/aux/workflow/TODOs.sh b/aux/workflow/TODOs.sh index 160e76f..6c24c3e 100755 --- a/aux/workflow/TODOs.sh +++ b/aux/workflow/TODOs.sh @@ -1,12 +1,43 @@ #!/bin/sh set -eu -mkdir -p public - -PROJECT_UC="$1" -PROJECT="$2" -MAILING_LIST="$3" TLD="$(cat aux/tld.txt)" +PROJECT_UC= +while getopts 'n:N:m:o:' flag; do + case "$flag" in + n) + PROJECT="$OPTARG" + ;; + N) + PROJECT_UC="$OPTARG" + ;; + m) + MAILING_LIST="$OPTARG" + ;; + o) + OUTDIR="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${PROJECT:-}" '-n PROJECT' +assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' +assert_arg "${OUTDIR:-}" '-o OUTDIR' + +if [ -z "${PROJECT_UC:-}" ]; then + PROJECT_UC="$PROJECT" +fi TODOS_ADD_REGEX='s/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE) (.*) \{#(.*?)\}$/## <a href="#\3"><span class="\1">\1<\/span> \2<\/a>\n<pre class="header-anchor" id="\3">#\3<\/pre>\n/' TODOS_CLEANUP_REGEX1='s/(<a><a)/<a/' @@ -37,4 +68,4 @@ sed -e "s:@PROJECT_UC@:$PROJECT_UC:g" \ | \ perl -pe "$TODOS_CLEANUP_REGEX1" | \ perl -pe "$TODOS_CLEANUP_REGEX2" \ - > public/TODOs.html + > "$OUTDIR/TODOs.html" |