diff options
Diffstat (limited to 'bin/live-reconfigure')
| -rwxr-xr-x | bin/live-reconfigure | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/live-reconfigure b/bin/live-reconfigure new file mode 100755 index 0000000..4e29768 --- /dev/null +++ b/bin/live-reconfigure @@ -0,0 +1,52 @@ +#! /bin/sh + +set -e +export PATH=/usr/bin:/usr/sbin:/sbin:/bin + +frontend=noninteractive + +findcommandinroot() { + ROOT="$1/" + shift + while [ "$#" -ge 1 ]; do + P="$PATH" + while [ "$P" ]; do + D=${P%%:*} + P=${P#*:} + if [ "$D" = "$P" ]; then + P= + fi + if [ -z "$D" ]; then + D=. + fi + if [ -x "$ROOT$D/$1" ]; then + echo "$D/$1" + return 0 + fi + done + shift + done + return 1 +} + +runcommandinroot() { + C=$(findcommandinroot "$1" "$2") + ROOT="$1" + shift + shift + [ -n "$C" ] && chroot "$ROOT" "$C" "$@" +} + +root="$1" +package="$2" + +version=$(runcommandinroot "$root" dpkg-query -W --showformat='${Version}' "$package" 2>/dev/null) || version="" + +if [ -z "$version" ]; then + echo >&2 "$0: package '$package' is not installed" + exit 0 +fi + +runcommandinroot "$root" dpkg-reconfigure -fnoninteractive --no-reload "$package" + +exit 0 |
