From bd919c08110bec0e42a4b02ba0f01814675f2fb9 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 26 Jun 2021 19:03:51 -0300 Subject: aux/workflow/dist.sh: Use getopts for arguments --- Makefile | 2 +- aux/workflow/dist.sh | 48 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index ad2c49e..63663e5 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ clean: rm -rf public/ src/git-permalink $(manpages) dist: - sh aux/workflow/dist.sh $(DATE) $(VERSION) $(NAME) $(NAME) $(MAILING_LIST) + sh aux/workflow/dist.sh -d $(DATE) -V $(VERSION) -n $(NAME) -m $(MAILING_LIST) l10n-gen: sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' $(manpages.en.in) diff --git a/aux/workflow/dist.sh b/aux/workflow/dist.sh index ed61ee5..ab94f20 100755 --- a/aux/workflow/dist.sh +++ b/aux/workflow/dist.sh @@ -1,19 +1,53 @@ #!/bin/sh set -eu -DATE="$1" -VVERSION="v$2" -PROJECT_UC="$3" -PROJECT="$4" -MAILING_LIST="$5" +while getopts 'd:V:n:N:m:' flag; do + case "$flag" in + d) + DATE="$OPTARG" + ;; + V) + VVERSION="v$OPTARG" + ;; + n) + PROJECT="$OPTARG" + ;; + N) + PROJECT_UC="$OPTARG" + ;; + m) + MAILING_LIST="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${DATE:-}" '-d DATE' +assert_arg "${VVERSION:-}" '-V VERSION' +assert_arg "${PROJECT:-}" '-n PROJECT' +assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' + +if [ -z "${PROJECT_UC:-}" ]; then + PROJECT_UC="$PROJECT" +fi if git show "$VVERSION" 1>/dev/null 2>/dev/null; then echo "Version '$VVERSION' already exists." >&2 exit 1 fi -sh aux/workflow/assert-changelog.sh "$PROJECT_UC" "$PROJECT" "$VVERSION" -sh aux/workflow/assert-readme.sh "$PROJECT" "$MAILING_LIST" "$VVERSION" +sh aux/workflow/assert-changelog.sh -N "$PROJECT_UC" -n "$PROJECT" "$VVERSION" +sh aux/workflow/assert-readme.sh -n "$PROJECT" -m "$MAILING_LIST" "$VVERSION" if [ "$DATE" != "$(git log -1 --format=%cd --date=short HEAD)" ]; then echo "Date '$DATE' is not up-to-date." >&2 -- cgit v1.2.3