From 2848a6a0f4e31e5e2fe19ab1340785b0cc332baa Mon Sep 17 00:00:00 2001 From: Ander Punnar Date: Mon, 25 Nov 2019 21:52:00 +0200 Subject: [PATCH] __clean_path: use __directory and __file types for better clarity --- cdist/conf/type/__clean_path/explorer/list | 6 ++-- cdist/conf/type/__clean_path/gencode-remote | 26 +--------------- cdist/conf/type/__clean_path/manifest | 33 +++++++++++++++++++++ 3 files changed, 38 insertions(+), 27 deletions(-) create mode 100755 cdist/conf/type/__clean_path/manifest diff --git a/cdist/conf/type/__clean_path/explorer/list b/cdist/conf/type/__clean_path/explorer/list index 07d38127..58d0b411 100755 --- a/cdist/conf/type/__clean_path/explorer/list +++ b/cdist/conf/type/__clean_path/explorer/list @@ -29,7 +29,9 @@ then exclude="$( cat "$__object/parameter/exclude" )" find "$path" -mindepth 1 -maxdepth 1 -regex "$pattern" \ - -and -not -regex "$exclude" + -and -not -regex "$exclude" \ + \( -type d -printf '%p/\n' , -type f -print \) else - find "$path" -mindepth 1 -maxdepth 1 -regex "$pattern" + find "$path" -mindepth 1 -maxdepth 1 -regex "$pattern" \ + \( -type d -printf '%p/\n' , -type f -print \) fi diff --git a/cdist/conf/type/__clean_path/gencode-remote b/cdist/conf/type/__clean_path/gencode-remote index 998a70d8..0157733f 100755 --- a/cdist/conf/type/__clean_path/gencode-remote +++ b/cdist/conf/type/__clean_path/gencode-remote @@ -18,31 +18,7 @@ # along with cdist. If not, see . # -[ ! -s "$__object/explorer/list" ] && exit 0 - -path="/$__object_id" - -pattern="$( cat "$__object/parameter/pattern" )" - -if [ -f "$__object/parameter/exclude" ] -then - exclude="$( cat "$__object/parameter/exclude" )" - - echo "find '$path' -mindepth 1 -maxdepth 1 -regex '$pattern'" \ - "-and -not -regex '$exclude'" \ - '-exec rm -rf {} \;' -else - echo "find '$path' -mindepth 1 -maxdepth 1 -regex '$pattern'" \ - '-exec rm -rf {} \;' -fi - -while read -r f -do - echo "removed '$f'" >> "$__messages_out" -done \ -< "$__object/explorer/list" - -if [ -f "$__object/parameter/onchange" ] +if [ -f "$__object/explorer/list" ] && [ -f "$__object/parameter/onchange" ] then cat "$__object/parameter/onchange" fi diff --git a/cdist/conf/type/__clean_path/manifest b/cdist/conf/type/__clean_path/manifest new file mode 100755 index 00000000..065ecb36 --- /dev/null +++ b/cdist/conf/type/__clean_path/manifest @@ -0,0 +1,33 @@ +#!/bin/sh -e +# +# 2019 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 . +# + +[ ! -f "$__object/explorer/list" ] && exit 0 + +for l in $( cat "$__object/explorer/list" ) +do + if echo "$l" | grep -Eq '/$' + then + __directory "$l" --state absent + echo "removed directory '$l'" >> "$__messages_out" + else + __file "$l" --state absent + echo "removed file '$l'" >> "$__messages_out" + fi +done