Merge remote-tracking branch 'dheule/type__package_zypper'

This commit is contained in:
Nico Schottelius 2013-12-11 14:39:32 +01:00
commit f955191d77
6 changed files with 38 additions and 4 deletions

View file

@ -3,3 +3,4 @@ version
type type
pkgsite pkgsite
state state
pstate

View file

@ -1,6 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
# 2013 Daniel Heule (hda at sfs.biz)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -18,7 +19,7 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>. # along with cdist. If not, see <http://www.gnu.org/licenses/>.
# #
# #
# Retrieve the status of a package # Retrieve the status of a package off different types
# #
if [ -f "$__object/parameter/name" ]; then if [ -f "$__object/parameter/name" ]; then
@ -27,4 +28,21 @@ else
name="$__object_id" name="$__object_id"
fi fi
rpm -q --whatprovides "$name" | grep -v 'no package provides' || true if [ -f "$__object/parameter/ptype" ]; then
ptype="$(cat "$__object/parameter/ptype")"
else
ptype="package"
fi
case "$ptype" in
package)
zypper search --details --match-exact --installed-only --type "$ptype" "$name" | grep -E '^i' | cut -d " " -f 3,7 || true
;;
patch|pattern|product|srcpackage)
zypper search --match-exact --installed-only --type "$ptype" "$name" | grep -E '^i' | cut -d " " -f 3 || true
;;
*)
echo "unknown ptype in __package_zypper explorer" &>2
exit 1
;;
esac

View file

@ -1,6 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# 2012 Nico Schottelius (nico-cdist at schottelius.org) # 2012 Nico Schottelius (nico-cdist at schottelius.org)
# 2013 Daniel Heule (hda at sfs.biz)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -39,6 +40,12 @@ else
state_should="present" state_should="present"
fi fi
if [ -f "$__object/parameter/ptype" ]; then
ptype="$(cat "$__object/parameter/ptype")"
else
ptype="package"
fi
pkg_version="$(cat "$__object/explorer/pkg_version")" pkg_version="$(cat "$__object/explorer/pkg_version")"
if [ -z "$pkg_version" ]; then if [ -z "$pkg_version" ]; then
state_is="absent" state_is="absent"
@ -51,10 +58,10 @@ fi
case "$state_should" in case "$state_should" in
present) present)
echo zypper $globalopts install --auto-agree-with-licenses \"$name\" ">/dev/null" echo zypper $globalopts install --type \"$ptype\" --auto-agree-with-licenses \"$name\" ">/dev/null"
;; ;;
absent) absent)
echo zypper $globalopts remove \"$name\" ">/dev/null" echo zypper $globalopts remove --type \"$ptype\" \"$name\" ">/dev/null"
;; ;;
*) *)
echo "Unknown state: $state_should" >&2 echo "Unknown state: $state_should" >&2

View file

@ -26,6 +26,9 @@ name::
state:: state::
Either "present" or "absent", defaults to "present" Either "present" or "absent", defaults to "present"
ptype::
Either "package", "patch", "pattern", "product" or "srcpackage", defaults to "package". For a description see man zypper.
EXAMPLES EXAMPLES
-------- --------
@ -39,6 +42,9 @@ __package_zypper python --state present --name python2
# Remove package # Remove package
__package_zypper cfengine --state absent __package_zypper cfengine --state absent
# install all packages which belongs to pattern x11
__package_zypper x11 --ptype pattern --state present
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -0,0 +1 @@
package

View file

@ -1,2 +1,3 @@
name name
state state
ptype