]> git.plutz.net Git - shellwiki/commitdiff
`changes` macro: allow multiple location arguments
authorPaul Hänsch <paul@plutz.net>
Wed, 20 Sep 2023 21:08:10 +0000 (23:08 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 20 Sep 2023 21:08:10 +0000 (23:08 +0200)
macros/changes

index 596a237d77e3d4b5d80430dc3039bd132b86de36..54f4782cf0bc0fc895b21578f9c4a3c5f03b12e5 100755 (executable)
@@ -22,12 +22,15 @@ _(){ printf %s\\n "$*"; }
 [ "${LANGUAGE}" -a -r "${_EXEC}/l10n/${LANGUAGE}.sh" ] && . "${_EXEC}/l10n/${LANGUAGE}.sh"
 
 LANGUAGES='' glob="/" depth=-1
+set -- "$@" --
 while [ $# -gt 0 ]; do case $1 in
   --system) glob_system_pages=true; shift 1;;
   :*) LANGUAGES="${LANGUAGES}${LANGUAGES:+ }${1#:}"; shift 1;;
   --depth) depth="$2"; shift 2;;
-  *) glob="$1"; shift 1;;
+  --) shift 1; break;;
+  *) set -- "$@" "$1"; shift 1;;
 esac; done
+[ "$*" ] || set -- /
 
 page='' page_abs='' ostamp='' odate='' lstamp='' ldate='' row='' rowstate=''
 
@@ -35,7 +38,11 @@ printf '<table class="macro changes"><thead>\n<th>Page</th>'
 for l in $LANGUAGES; do printf '<th>%s</th>' "$l"; done
 printf '\n</thead><tbody>\n'
 
-page_glob "$glob" "$depth" |while read page; do
+for glob in "$@"; do
+  page_glob "$glob" "$depth" 
+done \
+| sort -u \
+| while read page; do
   page_abs="$(page_abs "$page")"
   acl_read "${page_abs}" || continue