From efe75448fbf653a243ec7e0508766973ca5a1404 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 25 Jun 2008 09:21:11 +0000 Subject: [PATCH] sys: make debconf-get-selections detection on VServers really more robust git-svn-id: http://code.autistici.org/svn/backupninja/trunk@588 758a04ac-41e6-0310-8a23-8373a73cc35d --- handlers/sys.in | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/handlers/sys.in b/handlers/sys.in index 24ebbe1..83ed7b5 100755 --- a/handlers/sys.in +++ b/handlers/sys.in @@ -116,7 +116,7 @@ if [ "$packages" == "yes" ]; then continue fi # is $packagemgr available inside $vserver ? - if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $packagemgr`" ]; then + if [ ! -x "${VROOTDIR}/${vserver}${packagemgr}" ]; then warning "can't find $packagemgr in vserver $vserver, skipping installed packages report." else # don't expand * since it can be used in $packagemgroptions @@ -126,12 +126,21 @@ if [ "$packages" == "yes" ]; then set +o noglob fi # is $debconfgetselections available inside $vserver ? - if [ -z "`$VSERVER $vserver exec which debconf-get-selections`" ]; then + found=no + # case #1: it is available on the host, is it available inside $vserver ? + if [ -n "$debconfgetselections" ]; then + [ -x "${VROOTDIR}/${vserver}${debconfgetselections}" ] && found=yes + # case #2: it is not available on the host, is it available inside $vserver ? + else + [ -n "`$VSERVER $vserver exec which debconf-get-selections`" ] && found=yes + fi + if [ "$found" != yes ]; then warning "can't find debconf-get-selections in vserver $vserver, skipping package selection states." else debug "$VSERVER $vserver exec $debconfgetselections > $VROOTDIR/$vserver$selectionsfile" $VSERVER $vserver exec $debconfgetselections > $VROOTDIR/$vserver$selectionsfile || fatal "can not save debconf-get-selections info to $selectionsfile" fi + unset found done fi -- 2.30.2