From 86f45db1b9b5bf91ea55e5014e39b2437a06bc70 Mon Sep 17 00:00:00 2001 From: Ander Punnar Date: Fri, 19 Apr 2019 13:30:50 +0300 Subject: [PATCH] __acl: add nice oneliners and move default ACL decision out of the loop --- cdist/conf/type/__acl/gencode-remote | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/cdist/conf/type/__acl/gencode-remote b/cdist/conf/type/__acl/gencode-remote index 9cdcd3be..99c0f7f2 100755 --- a/cdist/conf/type/__acl/gencode-remote +++ b/cdist/conf/type/__acl/gencode-remote @@ -28,6 +28,13 @@ acl_is="$( cat "$__object/explorer/acl_is" )" acl_path="/$__object_id" +if [ -f "$__object/parameter/default" ] && [ "$is_dir" = '1' ] +then + set_default=1 +else + set_default=0 +fi + acl_should="$( for parameter in user group mask other do if [ ! -f "$__object/parameter/$parameter" ] @@ -39,30 +46,16 @@ do do if echo "$acl" | awk -F: '{ print $NF }' | grep -Fq 'X' then - if [ "$is_dir" = '1' ] - then - rep=x - else - rep=- - fi + [ "$is_dir" = '1' ] && rep=x || rep=- acl="$( echo "$acl" | sed "s/\(.*\)X/\1$rep/" )" fi - if echo "$parameter" | grep -Eq '(mask|other)' - then - sep=:: - else - sep=: - fi + echo "$parameter" | grep -Eq '(mask|other)' && sep=:: || sep=: echo "$parameter$sep$acl" - if [ -f "$__object/parameter/default" ] \ - && [ "$is_dir" = '1' ] - then - echo "default:$parameter$sep$acl" - fi + [ "$set_default" = '1' ] && echo "default:$parameter$sep$acl" done \ < "$__object/parameter/$parameter" done )"