forked from ungleich-public/cdist
46 lines
744 B
Bash
Executable File
46 lines
744 B
Bash
Executable File
#!/bin/sh -e
|
|
|
|
if [ -f "$__object/parameter/destination" ]
|
|
then
|
|
dst="$( cat "$__object/parameter/destination" )"
|
|
else
|
|
dst="/$__object_id"
|
|
fi
|
|
|
|
if [ ! -f "$dst" ]
|
|
then
|
|
echo 'absent'
|
|
exit 0
|
|
fi
|
|
|
|
if [ ! -f "$__object/parameter/sum" ]
|
|
then
|
|
echo 'present'
|
|
exit 0
|
|
fi
|
|
|
|
sum_should="$( cat "$__object/parameter/sum" )"
|
|
|
|
if echo "$sum_should" | grep -Fq ':'
|
|
then
|
|
sum_should="$( echo "$sum_should" | cut -d : -f 2 )"
|
|
fi
|
|
|
|
sum_cmd="$( "$__type_explorer/remote_cmd_sum" )"
|
|
|
|
# shellcheck disable=SC2059
|
|
sum_is="$( eval "$( printf "$sum_cmd" "'$dst'" )" )"
|
|
|
|
if [ -z "$sum_is" ]
|
|
then
|
|
echo 'existing destination checksum failed' >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$sum_is" = "$sum_should" ]
|
|
then
|
|
echo 'present'
|
|
else
|
|
echo 'mismatch'
|
|
fi
|