Merge branch '__package_absent_present'
This commit is contained in:
commit
2a8c764f78
18 changed files with 266 additions and 172 deletions
|
@ -1,5 +1,5 @@
|
||||||
cdist-type__user(7)
|
cdist-type__package(7)
|
||||||
===================
|
======================
|
||||||
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
Steven Armstrong <steven-cdist--@--armstrong.cc>
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,7 +17,8 @@ It dispatches the actual work to the package system dependant types.
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
The state the package should be in, either "installed" or "removed"
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -40,13 +41,13 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Install the package vim on the target
|
# Install the package vim on the target
|
||||||
__package vim --state installed
|
__package vim --state present
|
||||||
|
|
||||||
# Same but install specific version
|
# Same but install specific version
|
||||||
__package vim --state installed --version 7.3.50
|
__package vim --state present --version 7.3.50
|
||||||
|
|
||||||
# Force use of a specific package type
|
# Force use of a specific package type
|
||||||
__package vim --state installed --type __package_apt
|
__package vim --state present --type __package_apt
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
#
|
#
|
||||||
|
@ -31,8 +31,8 @@ fi
|
||||||
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
|
|
@ -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,28 +28,41 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
state_should="$(cat "$__object/parameter/state")"
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
state_is="$(cat "$__object/explorer/pkg_status")"
|
|
||||||
|
# Correct pre 2.1 naming - FIXME in 2.1
|
||||||
|
case "$state_should" in
|
||||||
|
installed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="present"
|
||||||
|
;;
|
||||||
|
removed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# FIXME: use grep directly, state is a list, not a line!
|
||||||
|
state_is="$(cat "$__object/explorer/state")"
|
||||||
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
|
||||||
|
|
||||||
aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes"
|
aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes"
|
||||||
|
|
||||||
if [ "$state_is" != "$state_should" ]; then
|
[ "$state_is" = "$state_should" ] && exit 0
|
||||||
case "$state_should" in
|
|
||||||
installed)
|
case "$state_should" in
|
||||||
|
present)
|
||||||
echo $aptget install \"$name\"
|
echo $aptget install \"$name\"
|
||||||
;;
|
;;
|
||||||
removed)
|
absent)
|
||||||
echo $aptget remove \"$name\"
|
echo $aptget remove \"$name\"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@ manage packages.
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -31,13 +32,13 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure zsh in installed
|
# Ensure zsh in installed
|
||||||
__package_apt zsh --state installed
|
__package_apt zsh --state present
|
||||||
|
|
||||||
# In case you only want *a* webserver, but don't care which one
|
# In case you only want *a* webserver, but don't care which one
|
||||||
__package_apt webserver --state installed --name nginx
|
__package_apt webserver --state present --name nginx
|
||||||
|
|
||||||
# Remove obsolete package
|
# Remove obsolete package
|
||||||
__package_apt puppet --state removed
|
__package_apt puppet --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,24 +29,38 @@ else
|
||||||
name="$__object_id"
|
name="$__object_id"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
state="$(cat "$__object/parameter/state")"
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)"
|
# Correct pre 2.1 naming - FIXME in 2.1
|
||||||
|
case "$state_should" in
|
||||||
case "$state" in
|
|
||||||
installed)
|
installed)
|
||||||
# Install only if non-existent
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
if [ -z "$is_installed" ]; then
|
state_should="present"
|
||||||
echo luarocks install \"$name\"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
removed)
|
removed)
|
||||||
# Remove only if existent
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
if [ -n "$is_installed" ]; then
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if grep -q "(installed)" "$__object/explorer/pkg_status"; then
|
||||||
|
state_is="present"
|
||||||
|
else
|
||||||
|
state_is="absent"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Leave if nothing is to be done
|
||||||
|
[ "$state_is" = "$state_should" ] && exit 0
|
||||||
|
|
||||||
|
case "$state_should" in
|
||||||
|
present)
|
||||||
|
echo luarocks install \"$name\"
|
||||||
|
;;
|
||||||
|
absent)
|
||||||
echo luarocks remove \"$name\"
|
echo luarocks remove \"$name\"
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
cdist-type__package_luarocks(7)
|
cdist-type__package_luarocks(7)
|
||||||
==============================
|
===============================
|
||||||
Christian G. Warden <cwarden@xerus.org>
|
Christian G. Warden <cwarden@xerus.org>
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,8 @@ LuaRocks is a deployment and management system for Lua modules.
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -30,10 +31,10 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure luasocket is installed
|
# Ensure luasocket is installed
|
||||||
__package_luarocks luasocket --state installed
|
__package_luarocks luasocket --state present
|
||||||
|
|
||||||
# Remove package
|
# Remove package
|
||||||
__package_luarocks luasocket --state removed
|
__package_luarocks luasocket --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
#
|
#
|
||||||
|
@ -18,7 +18,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 - parsed dpkg output
|
# Retrieve the status of a package - parsed pacman output
|
||||||
#
|
#
|
||||||
|
|
||||||
if [ -f "$__object/parameter/name" ]; then
|
if [ -f "$__object/parameter/name" ]; then
|
||||||
|
|
|
@ -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.
|
||||||
#
|
#
|
||||||
|
@ -33,24 +33,37 @@ else
|
||||||
name="$__object_id"
|
name="$__object_id"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
state="$(cat "$__object/parameter/state")"
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
pkg_version="$(cat "$__object/explorer/pkg_version")"
|
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
|
||||||
# Empty? Not installed.
|
state_should="present"
|
||||||
if [ -z "$pkg_version" ]; then
|
|
||||||
echo pacman "$pacopts" -S \"$name\"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
removed)
|
removed)
|
||||||
if [ "$pkg_version" ]; then
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
pkg_version="$(cat "$__object/explorer/pkg_version")"
|
||||||
|
if [ -z "$pkg_version" ]; then
|
||||||
|
state_is="absent"
|
||||||
|
else
|
||||||
|
state_is="present"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Exit if nothing is needed to be done
|
||||||
|
[ "$state_is" = "$state_should" ] && exit 0
|
||||||
|
|
||||||
|
case "$state_should" in
|
||||||
|
present)
|
||||||
|
echo pacman "$pacopts" -S \"$name\"
|
||||||
|
;;
|
||||||
|
absent)
|
||||||
echo pacman "$pacopts" -R \"$name\"
|
echo pacman "$pacopts" -R \"$name\"
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -17,7 +17,8 @@ packages.
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -31,13 +32,13 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure zsh in installed
|
# Ensure zsh in installed
|
||||||
__package_pacman zsh --state installed
|
__package_pacman zsh --state present
|
||||||
|
|
||||||
# If you don't want to follow pythonX packages, but always use python
|
# If you don't want to follow pythonX packages, but always use python
|
||||||
__package_pacman python --state installed --name python2
|
__package_pacman python --state present --name python2
|
||||||
|
|
||||||
# Remove obsolete package
|
# Remove obsolete package
|
||||||
__package_pacman puppet --state removed
|
__package_pacman puppet --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,5 +50,5 @@ SEE ALSO
|
||||||
|
|
||||||
COPYING
|
COPYING
|
||||||
-------
|
-------
|
||||||
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
|
Copyright \(C) 2011-2012 Nico Schottelius. Free use of this software is
|
||||||
granted under the terms of the GNU General Public License version 3 (GPLv3).
|
granted under the terms of the GNU General Public License version 3 (GPLv3).
|
||||||
|
|
|
@ -47,4 +47,8 @@ case "$state_should" in
|
||||||
absent)
|
absent)
|
||||||
echo $pip uninstall -q -y pyro
|
echo $pip uninstall -q -y pyro
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown state: $state_should" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# 2011 Andi Brönnimann (andi-cdist at v-net.ch)
|
# 2011 Andi Brönnimann (andi-cdist at v-net.ch)
|
||||||
|
# 2012 Nico Schottelius (nico-cdist at schottelius.org)
|
||||||
#
|
#
|
||||||
# This file is part of cdist.
|
# This file is part of cdist.
|
||||||
#
|
#
|
||||||
|
@ -28,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
|
||||||
|
@ -42,44 +42,60 @@ else
|
||||||
name="$__object_id"
|
name="$__object_id"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
state="$(cat "$__object/parameter/state")"
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
|
# Correct pre 2.1 naming - FIXME in 2.1
|
||||||
|
case "$state_should" in
|
||||||
|
installed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="present"
|
||||||
|
;;
|
||||||
|
removed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
pkg_version="$(cat "$__object/explorer/pkg_version")"
|
pkg_version="$(cat "$__object/explorer/pkg_version")"
|
||||||
|
|
||||||
# TODO: Shouldn't be hardcoded
|
# TODO: Shouldn't be hardcoded
|
||||||
echo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/
|
echo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/
|
||||||
|
|
||||||
case "$state" in
|
if [ "$pkg_version" ]; then
|
||||||
installed)
|
state_is="present"
|
||||||
# Empty? Not installed.
|
else
|
||||||
if [ -z "$pkg_version" ]; then
|
state_is="absent"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$state_is" = "$state_should" ] && exit 0
|
||||||
|
|
||||||
|
case "$state_should" in
|
||||||
|
present)
|
||||||
# use this because pkg_add doesn't properly handle errors
|
# use this because pkg_add doesn't properly handle errors
|
||||||
cat << eof
|
cat << eof
|
||||||
status=\$(pkg_add "$pkgopts" "$name--$flavor")
|
status=\$(pkg_add "$pkgopts" "$name--$flavor")
|
||||||
|
|
||||||
# no error
|
# no error
|
||||||
if [ -n "\$status" ]; then
|
if [ -n "\$status" ]; then
|
||||||
echo "Error: \$status"
|
echo "Error: \$status"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
eof
|
eof
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
removed)
|
|
||||||
if [ "$pkg_version" ]; then
|
absent)
|
||||||
# use this because pkg_add doesn't properly handle errors
|
# use this because pkg_add doesn't properly handle errors
|
||||||
cat << eof
|
cat << eof
|
||||||
status=\$(pkg_delete "$pkgopts" "$name--$flavor")
|
status=\$(pkg_delete "$pkgopts" "$name--$flavor")
|
||||||
|
|
||||||
# no error
|
# no error
|
||||||
if [ -n "\$status" ]; then
|
if [ -n "\$status" ]; then
|
||||||
echo "Error: \$status"
|
echo "Error: \$status"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
eof
|
eof
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -16,7 +16,8 @@ This type is usually used on OpenBSD to manage packages.
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -33,16 +34,16 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure zsh is installed
|
# Ensure zsh is installed
|
||||||
__package_pkg_openbsd zsh --state installed
|
__package_pkg_openbsd zsh --state present
|
||||||
|
|
||||||
# Ensure vim is installed, use flavor no_x11
|
# Ensure vim is installed, use flavor no_x11
|
||||||
__package_pkg_openbsd vim --state installed --flavor no_x11
|
__package_pkg_openbsd vim --state present --flavor no_x11
|
||||||
|
|
||||||
# If you don't want to follow pythonX packages, but always use python
|
# If you don't want to follow pythonX packages, but always use python
|
||||||
__package_pkg_openbsd python --state installed --name python2
|
__package_pkg_openbsd python --state present --name python2
|
||||||
|
|
||||||
# Remove obsolete package
|
# Remove obsolete package
|
||||||
__package_pkg_openbsd puppet --state removed
|
__package_pkg_openbsd puppet --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
# Install only if non-existent
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
if [ -z "$is_installed" ]; then
|
state_should="present"
|
||||||
echo gem install \"$name\" --no-ri --no-rdoc
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
removed)
|
removed)
|
||||||
# Remove only if existent
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
if [ -n "$is_installed" ]; then
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if grep -q true "$__object/explorer/pkg_status"; then
|
||||||
|
state_is="present"
|
||||||
|
else
|
||||||
|
state_is="absent"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$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 gem uninstall \"$name\"
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -16,7 +16,8 @@ Rubygems is the default package management system for the Ruby programming langu
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -30,10 +31,10 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure sinatra is installed
|
# Ensure sinatra is installed
|
||||||
__package_rubygem sinatra --state installed
|
__package_rubygem sinatra --state present
|
||||||
|
|
||||||
# Remove package
|
# Remove package
|
||||||
__package_rubygem rails --state removed
|
__package_rubygem rails --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,17 @@ else
|
||||||
name="$__object_id"
|
name="$__object_id"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
state="$(cat "$__object/parameter/state")"
|
state_should="$(cat "$__object/parameter/state")"
|
||||||
|
case "$state_should" in
|
||||||
|
installed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="present"
|
||||||
|
;;
|
||||||
|
removed)
|
||||||
|
echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
|
||||||
|
state_should="absent"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then
|
if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then
|
||||||
opts="-y --quiet"
|
opts="-y --quiet"
|
||||||
|
@ -37,19 +47,23 @@ fi
|
||||||
|
|
||||||
not_installed="^no package provides"
|
not_installed="^no package provides"
|
||||||
|
|
||||||
case "$state" in
|
if grep -q "$not_installed" "$__object/explorer/pkg_version"; then
|
||||||
installed)
|
state_is="absent"
|
||||||
if grep -q "$not_installed" "$__object/explorer/pkg_version"; then
|
else
|
||||||
|
state_is="present"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$state_is" = "$state_should ] && exit 0
|
||||||
|
|
||||||
|
case "$state_should" in
|
||||||
|
present)
|
||||||
echo yum $opts install \"$name\"
|
echo yum $opts install \"$name\"
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
removed)
|
absent)
|
||||||
if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then
|
|
||||||
echo yum $opts remove \"$name\"
|
echo yum $opts remove \"$name\"
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown state: $state" >&2
|
echo "Unknown state: $state_should" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -18,7 +18,8 @@ slightly confusing error message "Error: Nothing to do".
|
||||||
REQUIRED PARAMETERS
|
REQUIRED PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
state::
|
state::
|
||||||
Either "installed" or "removed".
|
The state the package should be in, either "present" or "absent"
|
||||||
|
(the old values "installed" or "removed" will be removed in cdist 2.1).
|
||||||
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
|
@ -32,13 +33,13 @@ EXAMPLES
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
# Ensure zsh in installed
|
# Ensure zsh in installed
|
||||||
__package_yum zsh --state installed
|
__package_yum zsh --state present
|
||||||
|
|
||||||
# If you don't want to follow pythonX packages, but always use python
|
# If you don't want to follow pythonX packages, but always use python
|
||||||
__package_yum python --state installed --name python2
|
__package_yum python --state present --name python2
|
||||||
|
|
||||||
# Remove obsolete package
|
# Remove obsolete package
|
||||||
__package_yum puppet --state removed
|
__package_yum puppet --state absent
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ Changelog
|
||||||
* Cleanup: Do not output failing script, but path to script only
|
* Cleanup: Do not output failing script, but path to script only
|
||||||
* Cleanup: Remove support for __debug variable in manifests (Type != Core
|
* Cleanup: Remove support for __debug variable in manifests (Type != Core
|
||||||
debugging)
|
debugging)
|
||||||
|
* Cleanup: Change __package_* to support absent/present (default state
|
||||||
|
name now). The values removed/installed will be removed in cdist 2.1.
|
||||||
* Feature Core: Support boolean parameters (Steven Armstrong)
|
* Feature Core: Support boolean parameters (Steven Armstrong)
|
||||||
|
|
||||||
2.0.7: 2012-02-13
|
2.0.7: 2012-02-13
|
||||||
|
|
Loading…
Reference in a new issue