either to it all, or fail; echo and cat suck, printf ftw!

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2014-03-11 21:07:20 +01:00
parent 75c203a1f0
commit 301b4e18ff

View file

@ -47,24 +47,22 @@ case "$state_should" in
present) present)
if [ "$file_type" = "directory" ]; then if [ "$file_type" = "directory" ]; then
# our destination is currently a directory, delete it # our destination is currently a directory, delete it
cat << DONE printf 'rm -rf "%s" &&\n' "$destination"
rm -rf "$destination" else
DONE
fi
if [ "$state_is" = "wrongsource" ]; then if [ "$state_is" = "wrongsource" ]; then
printf 'rm -f "%s"\n' "$destination" # our destination is a symlink but points to the wrong source,
# delete it
printf 'rm -f "%s" &&\n' "$destination"
fi
fi fi
# create our link # create our link
cat << DONE printf 'ln %s -f "%s" "%s"\n' "$lnopt" "$source" "$destination"
ln ${lnopt} -f "$source" "$destination"
DONE
;; ;;
absent) absent)
# only delete if it is a sym/hard link # only delete if it is a sym/hard link
if [ "$file_type" = "symlink" -o "$file_type" = "hardlink" ]; then if [ "$file_type" = "symlink" -o "$file_type" = "hardlink" ]; then
echo rm -f \"$destination\" printf 'rm -f "%s"\n' "$destination"
fi fi
;; ;;
*) *)