#!/bin/sh -e # # 2013 Nico Schottelius (nico-cdist at schottelius.org) # 2020 Ander Punnar (ander@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 . path_is="$( cat "${__object:?}/explorer/path_is" )" path_should="$( cat "${__object:?}/parameter/path" )" if [ "$path_is" = "$path_should" ] then exit 0 fi if [ "$( cat "${__object:?}/explorer/path_should_state" )" = 'absent' ] \ && [ -z "${__cdist_dry_run+dry run}" ] then echo "$path_should does not exist in target" >&2 exit 1 fi name=${__object_id:?} if ! grep -Fxq "$path_should" "${__object:?}/explorer/alternatives" then 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 fi echo "update-alternatives --set '$name' '$path_should'"