diff --git a/cdist/conf/type/__directory/gencode-remote b/cdist/conf/type/__directory/gencode-remote index 05c301b3..aba618ac 100755 --- a/cdist/conf/type/__directory/gencode-remote +++ b/cdist/conf/type/__directory/gencode-remote @@ -2,6 +2,7 @@ # # 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) # 2013 Steven Armstrong (steven-cdist armstrong.cc) +# 2014 Daniel Heule (hda at sfs.biz) # # This file is part of cdist. # @@ -73,14 +74,15 @@ set_mode() { case "$state_should" in present) if [ "$type" != "directory" ]; then - # our destination is not a directory, remove whatever is there - # and then create our directory and set all attributes set_attributes=1 - cat << DONE -rm -f "$destination" -mkdir $mkdiropt "$destination" -DONE - echo "remove non directory" >> "$__messages_out" + if [ "$type" != "none" ]; then + # our destination is not a directory, remove whatever is there + # and then create our directory and set all attributes + echo rm -f "\"$destination\"" + echo "remove non directory" >> "$__messages_out" + fi + echo "mkdir $mkdiropt \"$destination\"" + echo "create" >> "$__messages_out" fi # Note: Mode - needs to happen last as a chown/chgrp can alter mode by diff --git a/cdist/conf/type/__directory/man.text b/cdist/conf/type/__directory/man.text index cc327af2..a0bf8062 100644 --- a/cdist/conf/type/__directory/man.text +++ b/cdist/conf/type/__directory/man.text @@ -46,6 +46,21 @@ recursive:: If supplied the chgrp and chown call will run recursively. This does *not* influence the behaviour of chmod. +MESSAGES +-------- +chgrp :: + Changed group membership +chown :: + Changed owner +chmod :: + Changed mode +create:: + Empty directory was created +remove:: + Directory exists, but state is absent, directory will be removed by generated code. +remove non directory:: + Someting other than a directory with the same name exists and was removed prior to create. + EXAMPLES -------- diff --git a/cdist/core/explorer.py b/cdist/core/explorer.py index d926552a..41851bd6 100644 --- a/cdist/core/explorer.py +++ b/cdist/core/explorer.py @@ -22,6 +22,7 @@ import logging import os +import glob import cdist @@ -79,7 +80,7 @@ class Explorer(object): def list_global_explorer_names(self): """Return a list of global explorer names.""" - return os.listdir(self.local.global_explorer_path) + return glob.glob1(self.local.global_explorer_path, '*') def run_global_explorers(self, out_path): """Run global explorers and save output to files in the given @@ -111,7 +112,7 @@ class Explorer(object): """Return a list of explorer names for the given type.""" source = os.path.join(self.local.type_path, cdist_type.explorer_path) try: - return os.listdir(source) + return glob.glob1(source, '*') except EnvironmentError: return [] diff --git a/docs/changelog b/docs/changelog index f75bfa9a..c0cb9d65 100644 --- a/docs/changelog +++ b/docs/changelog @@ -9,8 +9,7 @@ Changelog * Core: Allow hostnames to start with / * Type __line: Remove unecessary backslash escape * Type __directory: Add messaging support (Daniel Heule) - * Type __directory: Do not generate code if mode is 0xxx ((Daniel Heule) - * Type __directory: Add messaging support (Daniel Heule) + * Type __directory: Do not generate code if mode is 0xxx (Daniel Heule) * Type __package: Fix typo in optional parameter ptype (Daniel Heule) * Type __start_on_boot: Fix for SuSE's chkconfig (Daniel Heule)