added chain-echo
[util-vserver.git] / util-vserver / scripts / vserver-build.functions
index 8a85849..fcde3fa 100644 (file)
@@ -34,12 +34,12 @@ function makeDevEntry
 {
     local dst=$1/$2
     case "$3" in
-       c|b)    mknod -m$6 "$dst"  $3 $4 $5;;
-       d)      mkdir -p -m$4 "$dst";;
-       f)      touch "$dst"
+       (c|b)   mknod -m$6 "$dst"  $3 $4 $5;;
+       (d)     mkdir -p -m$4 "$dst";;
+       (f)     touch "$dst"
                chmod $4 "$dst"
                ;;
-       *)      echo "Unknown dev-entry mode '$3'" >&2
+       (*)     echo "Unknown dev-entry mode '$3'" >&2
                false
                ;;
     esac
@@ -57,8 +57,8 @@ function populateDirectory
        for file in "$i"/*; do
            test -e "$file" || continue
            case "$file" in
-               */CVS)  test ! -d "$file" || continue;;
-               *.rpmsave|*.rpmnew|*.rpmorig)
+               (*/CVS) test ! -d "$file" || continue;;
+               (*.rpmsave|*.rpmnew|*.rpmorig)
                        continue;;
            esac
            
@@ -79,7 +79,7 @@ function _setRootDir
     done
 
     test -d "$ROOTDIR" || {
-       echo "Root-directory '$ROOTDIR' does not exist or is invalid"
+       echo "Root-directory '$ROOTDIR' does not exist or is invalid" >&2
        exit 1
     }
 }
@@ -127,24 +127,32 @@ function getDistribution
     elif test -e /etc/debian_version; then
        set -- $(cat /etc/debian_version)
        DISTRIBUTION=deb$1
+    elif test -e /etc/SuSE-release; then
+       set -- $(cat /etc/SuSE-release)
+       DISTRIBUTION=suse$3
     else
-       echo "Can not determine distribution; please specify it manually"
-       echo "with the '-d' option"
+       echo \
+"Can not determine distribution; please specify it manually
+with the '-d' option"  >&2
        exit 1
     fi >&2
 }
 
 ## Usage: initFilesystem [force]
-function initFilesystem
+function base.initFilesystem
 {
     test -z "$1" || _renameVserverCfg
     test ! -d "$VDIR" -a ! -d "$SETUP_CONFDIR" || {
-       echo "vserver-topdirectory and/or configuration exist already; "
-       echo "please try to use '--force', or remove them manually"
+       echo \
+"vserver-topdirectory '$VDIR' and/or configuration at '$SETUP_CONFDIR'
+exist already; please try to use '--force', or remove them manually"
+>&2
        exit 1
     } >&2
 
-    mkdir -p "$SETUP_CONFDIR"/apps "$VDIR"/{dev/pts,etc} "$SETUP_LOCKREVDIR"
+    mkdir -p -m755 "$VDIR"
+    chattr -t "$VDIR"
+    mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/{dev/pts,etc} "$SETUP_LOCKREVDIR"
     
     ln -s "$VDIR"       "$SETUP_CONFDIR/vdir"
 
@@ -153,6 +161,7 @@ function initFilesystem
        makeDevEntry "$VDIR"/dev $spec
     done <$_DEV_FILE
 
+    mkdir -p "$VDIR"/proc
     findAndCopy "$VDIR"/etc/hosts         "$CONFDIR"/.defaults/files/hosts "$CONFDIR/.distributions/$DISTRIBUTION"/files/hosts \
                                          "$DISTRIBDIR/$DISTRIBUTION"/files/hosts "$DISTRIBDIR"/defaults/files/hosts ""
 
@@ -161,7 +170,7 @@ function initFilesystem
     done
 }
 
-function initVariables
+function base.initVariables
 {
     _setRootDir
     _setVserverDir