Improve __apt_mark (Ander Punnar from beta)

This commit is contained in:
Darko Poljak 2016-12-08 20:04:17 +01:00
parent 6d765c1ff7
commit b0911ab87d
4 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,31 @@
#!/bin/sh
#
# 2016 Ander Punnar (cdist at kvlt.ee)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
apt_version_is=$(dpkg-query --show --showformat '${Version}' apt)
# from APT changelog:
# apt (0.8.14.2) UNRELEASED; urgency=low
# provide a 'dpkg --set-selections' wrapper to set/release holds
apt_version_should=0.8.14.2
dpkg --compare-versions $apt_version_should le $apt_version_is \
&& echo 0 \
|| echo 1

View File

@ -0,0 +1,30 @@
#!/bin/sh
#
# 2016 Ander Punnar (cdist at kvlt.ee)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
if [ -f "$__object/parameter/name" ]; then
name="$(cat "$__object/parameter/name")"
else
name="$__object_id"
fi
dpkg-query --show --showformat '${Status}' $name 2>/dev/null \
| grep -q 'ok installed' \
&& echo 0 \
|| echo 1

View File

@ -24,6 +24,19 @@ else
name="$__object_id"
fi
apt_version="$(cat "$__object/explorer/apt_version")"
if [ "$apt_version" != '0' ]; then
echo 'APT version not supported' >&2
exit 1
fi
package_installed="$(cat "$__object/explorer/package_installed")"
if [ "$package_installed" != '0' ]; then
exit 0
fi
state_should="$(cat "$__object/parameter/state")"
state_is="$(cat "$__object/explorer/state")"

View File

@ -2,6 +2,7 @@ Changelog
---------
next:
* Type __apt_mark: check supported apt version and if package is installed (Ander Punnar)
* New type: __docker (Steven Armstrong)
* New type: __package_dpkg (Tomas Pospisek)