add --create and --ifexists options to line #342

Open
stephan wants to merge 2 commits from stephan/cdist:line_create_ifexists into master
6 changed files with 23 additions and 2 deletions

View File

@ -0,0 +1,2 @@
create
ifexists

View File

@ -34,8 +34,16 @@ state_should="$(cat "$__object/parameter/state")"
state_is="$(cat "$__object/explorer/state")"
if [ -z "$state_is" ]; then
printf 'The file "%s" is missing. Please create it before using %s on it.\n' "$file" "${__type##*/}" >&2
exit 1
if [ -f "$__object/parameter/create" ]; then
echo "touch $file"
else
# only bark if the file should exists
if [ -f "$__object/parameter/only-if-file-present" ]; then
exit 0
fi
printf 'The file "%s" is missing. Please create it before using %s on it.\n' "$file" "${__type##*/}" >&2
exit 1
fi
fi
if [ "$state_should" = "$state_is" ] || \

View File

@ -21,6 +21,9 @@ OPTIONAL PARAMETERS
after
Insert the given line after this pattern.
create
It the file does not exist then create an empty file
before
Insert the given line before this pattern.
@ -28,6 +31,10 @@ file
If supplied, use this as the destination file.
Otherwise the object_id is used.
only-if-file-present
Only apply the line if the file exists. This can be used to prevent
adding the line to a non-existent file.
line
Specifies the line which should be absent or present.

View File

@ -0,0 +1,2 @@
create
only-if-file-present

View File

@ -0,0 +1 @@
false

View File

@ -0,0 +1 @@
false