[__file] Treat pre-exists as a special case in gencode-remote as it should never get there

This commit is contained in:
Dennis Camera 2020-02-26 16:48:14 +01:00
parent 46d2487f08
commit 9eacba06bb
1 changed files with 30 additions and 26 deletions

View File

@ -55,37 +55,41 @@ set_owner() {
} }
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 fire_onchange=1
} }
case "$state_should" in case "$state_should" in
present|exists|pre-exists) present|exists)
# Note: Mode - needs to happen last as a chown/chgrp can alter mode by # Note: Mode - needs to happen last as a chown/chgrp can alter mode by
# clearing S_ISUID and S_ISGID bits (see chown(2)) # clearing S_ISUID and S_ISGID bits (see chown(2))
for attribute in group owner mode; do for attribute in group owner mode; do
if [ -f "$__object/parameter/$attribute" ]; then if [ -f "$__object/parameter/$attribute" ]; then
value_should="$(cat "$__object/parameter/$attribute")" value_should="$(cat "$__object/parameter/$attribute")"
# change 0xxx format to xxx format => same as stat returns # change 0xxx format to xxx format => same as stat returns
if [ "$attribute" = mode ]; then if [ "$attribute" = mode ]; then
value_should="$(echo "$value_should" | sed 's/^0\(...\)/\1/')" value_should="$(echo "$value_should" | sed 's/^0\(...\)/\1/')"
fi fi
value_is="$(get_current_value "$attribute" "$value_should")" value_is="$(get_current_value "$attribute" "$value_should")"
if [ -f "$__object/files/set-attributes" ] || [ "$value_should" != "$value_is" ]; then if [ -f "$__object/files/set-attributes" ] || [ "$value_should" != "$value_is" ]; then
"set_$attribute" "$value_should" "set_$attribute" "$value_should"
fi
fi fi
done
if [ -f "$__object/files/set-attributes" ]; then
# set-attributes is created if file is created or uploaded in gencode-local
fire_onchange=1
fi fi
done
if [ -f "$__object/files/set-attributes" ]; then
# set-attributes is created if file is created or uploaded in gencode-local
fire_onchange=1
fi
;; ;;
pre-exists)
# pre-exists should never reach gencode-remote…
exit 1
;;
absent) absent)
if [ "$type" = "file" ]; then if [ "$type" = "file" ]; then
echo "rm -f '$destination'" echo "rm -f '$destination'"
@ -101,7 +105,7 @@ case "$state_should" in
esac esac
if [ -f "$__object/parameter/onchange" ]; then if [ -f "$__object/parameter/onchange" ]; then
if [ -n "$fire_onchange" ]; then if [ -n "$fire_onchange" ]; then
cat "$__object/parameter/onchange" cat "$__object/parameter/onchange"
fi fi
fi fi