merged/added from 0.25
[util-vserver.git] / util-vserver / scripts / functions
index f9215f7..189f462 100644 (file)
@@ -237,17 +237,17 @@ function pkgInit
 function getAllVservers
 {
     local i
-    declare -a tmp=()
+    declare -a _tmp=()
 
     for i in $CONFDIR/*; do
        test   -d "$i"          || continue
        test ! -e "$i"/disabled || continue
        test   -d "$i"/vdir     || continue
 
-       tmp=( "${tmp[@]}" "${i##$CONFDIR/}")
+       _tmp=( "${_tmp[@]}" "${i##$CONFDIR/}")
     done
 
-    eval $1=\$tmp
+    eval $1='( "${_tmp[@]}" )'
 }
 
 ## Usage: getVserverCtx <vdir> <result-varname> [<procnumber-varname> [<do-cleanup>]]
@@ -293,3 +293,32 @@ function getFileArray
     local IFS=$_VS_NEWLINE
     eval "$1"='( $(< "$2") )'
 }
+
+function checkComponents
+{
+    local      i
+    local      msg=$1
+    local      x_failed=
+
+    shift
+    
+    for i; do
+       local failed=
+       case "$i" in
+           core)       test -x "$_CHBIND"           || failed=1;;
+           build)      test -x "$_VSERVER_BUILD"    || failed=1;;
+           sysv)       test -x "$INITRDDIR/vserver" || failed=1;;
+           devel)      test -d "$INCLUDEDIR/vserver.h" || failed=1;;
+           *)          echo "Unknown component '$i'"
+                       return false
+                       ;;
+       esac
+
+       test -z "$failed" || {
+           echo "$msg: $i"
+           x_failed=1
+       }
+    done
+
+    test -z "$x_failed"
+}