forked from ungleich-public/cdist
__package_apt ignores --version parameter #615
This commit is contained in:
parent
fe8004eca2
commit
d6ff077156
2 changed files with 21 additions and 2 deletions
|
@ -31,7 +31,8 @@ fi
|
|||
packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name"
|
||||
for p in $packages; do
|
||||
if [ -n "$(dpkg -s "$p" 2>/dev/null | grep "^Status: install ok installed$")" ]; then
|
||||
echo "present $p"
|
||||
version=$(dpkg -s "$p" 2>/dev/null | grep "^Version:" | cut -d ' ' -f 2)
|
||||
echo "present $p $version"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -29,6 +29,13 @@ fi
|
|||
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
|
||||
version_param="$__object/parameter/version"
|
||||
|
||||
version=""
|
||||
if [ -f "$version_param" ]; then
|
||||
version="$(cat "$version_param")"
|
||||
fi
|
||||
|
||||
if [ -f "$__object/parameter/target-release" ]; then
|
||||
target_release="--target-release $(cat "$__object/parameter/target-release")"
|
||||
else
|
||||
|
@ -47,18 +54,29 @@ state_is="$(cat "$__object/explorer/state")"
|
|||
case "$state_is" in
|
||||
present*)
|
||||
name="$(echo "$state_is" | cut -d ' ' -f 2)"
|
||||
version_is="$(echo "$state_is" | cut -d ' ' -f 3)"
|
||||
state_is="present"
|
||||
;;
|
||||
*)
|
||||
version_is=""
|
||||
;;
|
||||
esac
|
||||
|
||||
# Hint if we need to avoid questions at some point:
|
||||
# DEBIAN_PRIORITY=critical can reduce the number of questions
|
||||
aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes --no-install-recommends -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\""
|
||||
|
||||
[ "$state_is" = "$state_should" ] && exit 0
|
||||
if [ "$state_is" = "$state_should" ]; then
|
||||
if [ -z "$version" ] || [ "$version" = "$version_is" ]; then
|
||||
exit 0;
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$state_should" in
|
||||
present)
|
||||
if [ -n "$version" ]; then
|
||||
name="${name}=${version}"
|
||||
fi
|
||||
echo $aptget install $target_release \"$name\"
|
||||
;;
|
||||
absent)
|
||||
|
|
Loading…
Reference in a new issue