From b599cb618937e1a08091b57d9359263eb101baeb Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 26 Jun 2021 19:07:35 -0300 Subject: aux/workflow/public.sh: Use getopts for arguments --- aux/workflow/public.sh | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'aux/workflow') diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh index 7433595..50417ac 100755 --- a/aux/workflow/public.sh +++ b/aux/workflow/public.sh @@ -1,10 +1,41 @@ #!/bin/sh set -eu -PROJECT_UC="$1" -PROJECT="$2" -MAILING_LIST="$3" -OUTDIR="$4" +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 mkdir -p "$OUTDIR" -- cgit v1.2.3