diff --git a/cdist/conf/type/__acl/explorer/file_exists b/cdist/conf/type/__acl/explorer/file_is similarity index 81% rename from cdist/conf/type/__acl/explorer/file_exists rename to cdist/conf/type/__acl/explorer/file_is index 998d407c..096cffd1 100755 --- a/cdist/conf/type/__acl/explorer/file_exists +++ b/cdist/conf/type/__acl/explorer/file_is @@ -19,6 +19,13 @@ # if [ -e "/$__object_id" ] -then echo 1 -else echo 0 +then + if [ -d "/$__object_id" ] + then echo directory + elif [ -f "/$__object_id" ] + then echo regular + else echo other + fi +else + echo missing fi diff --git a/cdist/conf/type/__acl/explorer/is_dir b/cdist/conf/type/__acl/explorer/is_dir deleted file mode 100755 index 7c4e2538..00000000 --- a/cdist/conf/type/__acl/explorer/is_dir +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -[ ! -e "/$__object_id" ] && exit 0 - -if [ -d "/$__object_id" ] -then echo 1 -else echo 0 -fi diff --git a/cdist/conf/type/__acl/gencode-remote b/cdist/conf/type/__acl/gencode-remote index 99c0f7f2..5bb19aa8 100755 --- a/cdist/conf/type/__acl/gencode-remote +++ b/cdist/conf/type/__acl/gencode-remote @@ -18,17 +18,17 @@ # along with cdist. If not, see . # -[ "$( cat "$__object/explorer/file_exists" )" = '0' ] && exit 0 +file_is="$( cat "$__object/explorer/file_is" )" + +[ "$file_is" = 'missing' ] && exit 0 os="$( cat "$__global/explorer/os" )" -is_dir="$( cat "$__object/explorer/is_dir" )" - acl_is="$( cat "$__object/explorer/acl_is" )" acl_path="/$__object_id" -if [ -f "$__object/parameter/default" ] && [ "$is_dir" = '1' ] +if [ -f "$__object/parameter/default" ] && [ "$file_is" = 'directory' ] then set_default=1 else @@ -46,7 +46,7 @@ do do if echo "$acl" | awk -F: '{ print $NF }' | grep -Fq 'X' then - [ "$is_dir" = '1' ] && rep=x || rep=- + [ "$file_is" = 'directory' ] && rep=x || rep=- acl="$( echo "$acl" | sed "s/\(.*\)X/\1$rep/" )" fi