[type/__update_alternatives] dry-run fixes

This commit is contained in:
Dennis Camera 2021-08-02 21:25:08 +02:00
parent a7d6481a7d
commit 0b3b47396f
3 changed files with 16 additions and 7 deletions

View file

@ -31,8 +31,11 @@ do
fi
done
if [ -z "$link" ]
if [ -z "$link" ] && [ -z "${__cdist_dry_run+dry run}" ]
then
# NOTE: ignore error for dry-runs because a package providing the link
# might be managed by another cdist object (which wasn't executed,
# because dry run…).
echo "unable to get link for ${__object_id:?}" >&2
exit 1
fi

View file

@ -3,8 +3,11 @@
path_is="$( update-alternatives --display "${__object_id:?}" 2>/dev/null \
| awk '/link currently points to/ {print $5}' )"
if [ -z "$path_is" ]
if [ -z "$path_is" ] && [ -z "${__cdist_dry_run+dry run}" ]
then
# NOTE: ignore error for dry-runs because a package providing the
# alternative might be managed by another cdist object (which
# wasn't executed, because dry run…).
echo "unable to get current path for ${__object_id:?}" >&2
exit 1
fi

View file

@ -38,16 +38,19 @@ name=${__object_id:?}
if ! grep -Fxq "$path_should" "${__object:?}/explorer/alternatives"
then
if [ ! -f "$__object/parameter/install" ]
if [ -f "${__object:?}/parameter/install" ]
then
link="$( cat "${__object:?}/explorer/link" )"
echo "update-alternatives --install '$link' '$name' '$path_should' 1000"
elif [ -z "${__cdist_dry_run+dry run}" ]
then
# NOTE: ignore error for dry-runs because a package providing the link
# to be installed might be managed by another cdist object (which
# wasn't executed, because dry run…).
echo "$path_should is not in $name alternatives." >&2
echo 'Please install missing packages or use --install to add path to alternatives.' >&2
exit 1
fi
link="$( cat "$__object/explorer/link" )"
echo "update-alternatives --install '$link' '$name' '$path_should' 1000"
fi
echo "update-alternatives --set '$name' '$path_should'"