X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=acl.sh;h=0ba66631d40c6709e1b59ee2e41f6dfde4167cc0;hb=4bb6a2be511e608fa87fbb7b54d8ed275b844b30;hp=74fc8dc38419f9c556ff98e3882631ca709f6d8b;hpb=c54b9fb65cc638117cae1c7185ab4ac937462296;p=shellwiki diff --git a/acl.sh b/acl.sh index 74fc8dc..0ba6663 100755 --- a/acl.sh +++ b/acl.sh @@ -1,7 +1,10 @@ #!/bin/sh +[ "$include_acl" ] && return 0 +include_acl="$0" + # ACL_OVERRIDE="${ACL_OVERRIDE:-Admin:read,write}" -ACL_DEFAULT="${ACL_DEFAULT:-All:read${BR}Known:read,write}" +ACL_DEFAULT="${ACL_DEFAULT:-Known:read,write${BR}All:read}" acl_cachepath='' acl_collection='' @@ -34,16 +37,21 @@ acl_collect(){ continue fi - n=20; while read -r head acl; do - if [ "$head" = "%acl" ]; then - acl_collection="${acl%${CR}}${BR}" - printf "%s\n" "${acl%${CR}}" - n=$((n+1)) - fi + acl="$(sed -En ' + s;\r$;;; + /^%acl([\t ]+.*)?$/bACL; + 20q; + b; + + :ACL + s;(%(acl)?)?[\t ]*;; + p; n; s;\r$;;; + /^(%[ \t]+|%acl[ \t]+|[ \t]+)[^ \t\r]+$/bACL; + /^(%[ \t]*|%acl[ \t]*)$/bACL; + ' <"$pagefile")" - n="$((n - 1))" - [ "$n" -eq 0 ] && break - done <"$pagefile" + printf %s\\n "${acl}" + acl_collection="${acl_collection}${acl}${BR}" done printf '%s\n' "$ACL_DEFAULT"