support absent/present in __package_apt

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
Nico Schottelius 2012-02-08 22:23:49 +01:00
parent 2aed047f75
commit 602e57455d
2 changed files with 16 additions and 10 deletions

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# 2011 Nico Schottelius (nico-cdist at schottelius.org) # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -28,11 +28,11 @@ else
fi fi
# Except dpkg failing, if package is not known / installed # Except dpkg failing, if package is not known / installed
packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name" packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name"
for p in $packages; do for p in $packages; do
if [ -n "$(dpkg -s "$p" 2>/dev/null | grep "^Status: install ok installed$")" ]; then if [ -n "$(dpkg -s "$p" 2>/dev/null | grep "^Status: install ok installed$")" ]; then
echo "installed $p" echo "present $p"
exit 0 exit 0
fi fi
done done
echo "removed" echo absent

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# 2011 Nico Schottelius (nico-cdist at schottelius.org) # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -28,11 +28,18 @@ else
fi fi
state_should="$(cat "$__object/parameter/state")" state_should="$(cat "$__object/parameter/state")"
# Correct pre 2.1 naming - FIXME in 2.1
case "$state_should" in
installed) state_should="present" ;;
removed) state_should="absent" ;;
esac
state_is="$(cat "$__object/explorer/pkg_status")" state_is="$(cat "$__object/explorer/pkg_status")"
case "$state_is" in case "$state_is" in
installed*) present*)
name="$(echo "$state_is" | cut -d ' ' -f 2)" name="$(echo "$state_is" | cut -d ' ' -f 2)"
state_is="installed" state_is="present"
;; ;;
esac esac
@ -40,10 +47,10 @@ aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes"
if [ "$state_is" != "$state_should" ]; then if [ "$state_is" != "$state_should" ]; then
case "$state_should" in case "$state_should" in
installed) present)
echo $aptget install \"$name\" echo $aptget install \"$name\"
;; ;;
removed) absent)
echo $aptget remove \"$name\" echo $aptget remove \"$name\"
;; ;;
*) *)
@ -52,4 +59,3 @@ if [ "$state_is" != "$state_should" ]; then
;; ;;
esac esac
fi fi