support absent/present in __package_rubygem

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
Nico Schottelius 2012-02-16 23:23:19 +01:00
parent 9fab782a0c
commit e4aafe0af9
2 changed files with 34 additions and 24 deletions

View file

@ -29,7 +29,6 @@
os_version="$(cat "$__global/explorer/os_version")" os_version="$(cat "$__global/explorer/os_version")"
machine="$(cat "$__global/explorer/machine")" machine="$(cat "$__global/explorer/machine")"
if [ -f "$__object/parameter/flavor" ]; then if [ -f "$__object/parameter/flavor" ]; then
flavor="$(cat "$__object/parameter/flavor")" flavor="$(cat "$__object/parameter/flavor")"
fi fi

View file

@ -21,31 +21,42 @@
# Manage Rubygem packages # Manage Rubygem packages
# #
if [ -f "$__object/parameter/name" ]; then if [ -f "$__object/parameter/name" ]; then
name="$(cat "$__object/parameter/name")" name="$(cat "$__object/parameter/name")"
else else
name="$__object_id" name="$__object_id"
fi fi
state="$(cat "$__object/parameter/state")" state_should="$(cat "$__object/parameter/state")"
is_installed="$(grep "true" "$__object/explorer/pkg_status" || true)" # Correct pre 2.1 naming - FIXME in 2.1
case "$state_should" in
case "$state" in installed)
installed) echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
# Install only if non-existent state_should="present"
if [ -z "$is_installed" ]; then ;;
echo gem install \"$name\" --no-ri --no-rdoc removed)
fi echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
;; state_should="absent"
removed) ;;
# Remove only if existent esac
if [ -n "$is_installed" ]; then
echo gem uninstall \"$name\" if grep -q true "$__object/explorer/pkg_status"; then
fi state_is="present"
;; else
*) state_is="absent"
echo "Unknown state: $state" >&2 fi
exit 1
;; [ "$state_is" = "$state_should ] && exit 0
case "$state_should" in
present)
echo gem install \"$name\" --no-ri --no-rdoc
;;
absent)
echo gem uninstall \"$name\"
;;
*)
echo "Unknown state: $state" >&2
exit 1
;;
esac esac