From c6fd43da81bbc35b607005b239d4819e453174f6 Mon Sep 17 00:00:00 2001 From: Ander Punnar Date: Fri, 29 Mar 2019 00:38:50 +0200 Subject: [PATCH] add --onchange to __file, because having to use __config_file just for that feels redundant --- cdist/conf/type/__file/gencode-remote | 12 +++++++++++- cdist/conf/type/__file/man.rst | 3 +++ cdist/conf/type/__file/parameter/optional | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cdist/conf/type/__file/gencode-remote b/cdist/conf/type/__file/gencode-remote index e19d428b..a6f35c0b 100755 --- a/cdist/conf/type/__file/gencode-remote +++ b/cdist/conf/type/__file/gencode-remote @@ -23,7 +23,7 @@ destination="/$__object_id" state_should="$(cat "$__object/parameter/state")" type="$(cat "$__object/explorer/type")" stat_file="$__object/explorer/stat" - +fire_onchange='' get_current_value() { if [ -s "$stat_file" ]; then @@ -45,16 +45,19 @@ get_current_value() { set_group() { echo "chgrp '$1' '$destination'" echo "chgrp '$1'" >> "$__messages_out" + fire_onchange=1 } set_owner() { echo "chown '$1' '$destination'" echo "chown '$1'" >> "$__messages_out" + fire_onchange=1 } set_mode() { echo "chmod '$1' '$destination'" echo "chmod '$1'" >> "$__messages_out" + fire_onchange=1 } case "$state_should" in @@ -83,6 +86,7 @@ case "$state_should" in if [ "$type" = "file" ]; then echo "rm -f '$destination'" echo remove >> "$__messages_out" + fire_onchange=1 fi ;; @@ -91,3 +95,9 @@ case "$state_should" in exit 1 ;; esac + +if [ -f "$__object/parameter/onchange" ]; then + if [ -n "$fire_onchange" ]; then + cat "$__object/parameter/onchange" + fi +fi diff --git a/cdist/conf/type/__file/man.rst b/cdist/conf/type/__file/man.rst index a141d70b..7a0603bb 100644 --- a/cdist/conf/type/__file/man.rst +++ b/cdist/conf/type/__file/man.rst @@ -63,6 +63,9 @@ source If not supplied, an empty file or directory will be created. If source is '-' (dash), take what was written to stdin as the file content. +onchange + The code to run if file is modified. + MESSAGES -------- chgrp diff --git a/cdist/conf/type/__file/parameter/optional b/cdist/conf/type/__file/parameter/optional index c696d592..9b98352c 100644 --- a/cdist/conf/type/__file/parameter/optional +++ b/cdist/conf/type/__file/parameter/optional @@ -3,3 +3,4 @@ group mode owner source +onchange