Merge pull request #743 from 4nd3r/__file_onchange

add --onchange to __file
This commit is contained in:
Darko Poljak 2019-03-29 22:57:16 +01:00 committed by GitHub
commit 6eb0aa4aeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 1 deletions

View file

@ -23,7 +23,7 @@ destination="/$__object_id"
state_should="$(cat "$__object/parameter/state")" state_should="$(cat "$__object/parameter/state")"
type="$(cat "$__object/explorer/type")" type="$(cat "$__object/explorer/type")"
stat_file="$__object/explorer/stat" stat_file="$__object/explorer/stat"
fire_onchange=''
get_current_value() { get_current_value() {
if [ -s "$stat_file" ]; then if [ -s "$stat_file" ]; then
@ -45,16 +45,19 @@ get_current_value() {
set_group() { set_group() {
echo "chgrp '$1' '$destination'" echo "chgrp '$1' '$destination'"
echo "chgrp '$1'" >> "$__messages_out" echo "chgrp '$1'" >> "$__messages_out"
fire_onchange=1
} }
set_owner() { set_owner() {
echo "chown '$1' '$destination'" echo "chown '$1' '$destination'"
echo "chown '$1'" >> "$__messages_out" echo "chown '$1'" >> "$__messages_out"
fire_onchange=1
} }
set_mode() { set_mode() {
echo "chmod '$1' '$destination'" echo "chmod '$1' '$destination'"
echo "chmod '$1'" >> "$__messages_out" echo "chmod '$1'" >> "$__messages_out"
fire_onchange=1
} }
case "$state_should" in case "$state_should" in
@ -83,6 +86,7 @@ case "$state_should" in
if [ "$type" = "file" ]; then if [ "$type" = "file" ]; then
echo "rm -f '$destination'" echo "rm -f '$destination'"
echo remove >> "$__messages_out" echo remove >> "$__messages_out"
fire_onchange=1
fi fi
;; ;;
@ -91,3 +95,9 @@ case "$state_should" in
exit 1 exit 1
;; ;;
esac esac
if [ -f "$__object/parameter/onchange" ]; then
if [ -n "$fire_onchange" ]; then
cat "$__object/parameter/onchange"
fi
fi

View file

@ -63,6 +63,9 @@ source
If not supplied, an empty file or directory will be created. 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. If source is '-' (dash), take what was written to stdin as the file content.
onchange
The code to run if file is modified.
MESSAGES MESSAGES
-------- --------
chgrp <group> chgrp <group>

View file

@ -3,3 +3,4 @@ group
mode mode
owner owner
source source
onchange