lib/vserver.in [init_vservers] : canonicalize VROOTDIR (since duplicity et al. don...
[matthijs/upstream/backupninja.git] / lib / vserver.in
index 6a61afc2dd4419ac9f5a75538990877ff77e8be1..3030387a00aa1cca5a4b3272f14b923610bfb84a 100644 (file)
@@ -34,6 +34,8 @@ init_vservers() {
    getconf VSERVERINFO /usr/sbin/vserver-info
    getconf VSERVER /usr/sbin/vserver
    getconf VROOTDIR `if [ -x "$VSERVERINFO" ]; then $VSERVERINFO info SYSINFO | grep '^ *vserver-Rootdir' | awk '{print $2}'; fi`
+   # canonicalize VROOTDIR
+   VROOTDIR=`readlink --canonicalize $VROOTDIR`
    # init this library's global variables
    vservers_are_available=no
    found_vservers=
@@ -41,6 +43,16 @@ init_vservers() {
    host_or_vservers=host
    # check vservers real availability
    if [ $vservers = yes ]; then
+      if [ ! -x "$VSERVERINFO" ]; then
+         `if [ "$arg" = nodialog ]; then echo fatal; else echo "msgBox warning"; fi` \
+            "vservers enabled in $conffile, but vserver-info command was not found. Please set the VSERVERINFO configuration variable to its full path."
+            return
+      fi
+      if [ ! -x "$VSERVER" ]; then
+         `if [ "$arg" = nodialog ]; then echo fatal; else echo "msgBox warning"; fi` \
+            "vservers enabled in $conffile, but vserver command was not found. Please set the VSERVER configuration variable to its full path."
+            return
+      fi
       if [ -z "$VROOTDIR" ]; then
          `if [ "$arg" = nodialog ]; then echo fatal; else echo "msgBox warning"; fi` \
             "vservers enabled in $conffile, but VROOTDIR is not set and could not be guessed."