X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvserver-build.functions;h=fcde3fa52392d6b646909a639f003b66a7be47ef;hb=c574f33e210c3438945209d685c218c51f74cbaa;hp=d43baa34525adcc153ec27689954dccd888b5889;hpb=5bff749b9d2502086abb455bee6964dba013f684;p=util-vserver.git diff --git a/util-vserver/scripts/vserver-build.functions b/util-vserver/scripts/vserver-build.functions index d43baa3..fcde3fa 100644 --- a/util-vserver/scripts/vserver-build.functions +++ b/util-vserver/scripts/vserver-build.functions @@ -20,8 +20,6 @@ ROOTDIR= ROOTDIR_REL= -PKGCFGBASE= -PKGCFGBASE_REL= VSERVERDIRNAME= VDIR= @@ -36,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 @@ -59,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 @@ -73,7 +71,7 @@ function _setRootDir { test -z "$ROOTDIR" || return 0 - for item in "\"$CONFDIR/.defaults/vdirbase\" 1" "/vservers"; do + for item in "\"$CONFDIR/.defaults/vdirbase\" 1" "$DEFAULT_VSERVERDIR"; do eval set -- "$item" ROOTDIR=$1 ROOTDIR_REL=$2 @@ -81,36 +79,11 @@ 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 } } -function _setPkgCfgBase -{ - test -z "$PKGCFGBASE" || return 0 - - for item in "\"$CONFDIR/.defaults/apps/pkgmgmt/base\" 1" "$ROOTDIR/.pkg"; do - eval set -- "$item" - PKGCFGBASE=$1 - PKGCFGBASE_REL=$2 - test ! -d "$PKGCFGBASE" || break - done - - test -d "$PKGCFGBASE" || { - echo "pkgcfgbase-dir '$PKGCFGBASE' does not exists or is invalid" - exit 1 - } -} - -function _setPkgCfg -{ - _setPkgCfgBase - - test -z "$PKGCFGDIR" || return 0 - PKGCFGDIR="$PKGCFGBASE/$VSERVERDIRNAME" -} - function _setVserverDir { test -z "$VSERVERDIRNAME" || return 0 @@ -154,56 +127,57 @@ 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/pkgmgmt "$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" - test -z "$PKGCFGDIR" || { - ln -s "$PKGCFGDIR" "$SETUP_CONFDIR/apps/pkgmgmt/base" - - test "$_EXECDIR" = / || ln -s "$_EXECDIR" "$confdir/apps/pkgmgmt/execdir" - } - local spec while read spec; do 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 "" for i in nsswitch.conf krb5.conf krb.conf krb.realms ldap.conf localtime resolv.conf; do - findAndCopy "$VDIR"/etc/$i "$CONFDIR/.defaults/files/$i" "$CONFDIR/.distributions/$DISTRIBUTION"/files/$i" "" + findAndCopy "$VDIR"/etc/$i "$CONFDIR/.defaults/files/$i" "$CONFDIR/.distributions/$DISTRIBUTION/files/$i" "" done } -function initVariables +function base.initVariables { _setRootDir _setVserverDir - _setPkgCfg _setVdir findFile _DEV_FILE "$CONFDIR/.distributions/$DISTRIBUTION/devs" "$DISTRIBDIR/$DISTRIBUTION/devs" "$DISTRIBDIR/defaults/devs" findDir _EXECDIR "$CONFDIR/.distributions/$DISTRIBUTION/execdir" "$DISTRIBDIR/$DISTRIBUTION/execdir" / findFile BUILD_INITPRE "$CONFDIR/.distributions/$DISTRIBUTION/initpre" "$DISTRIBDIR/$DISTRIBUTION/initpre" "" findFile BUILD_INITPOST "$CONFDIR/.distributions/$DISTRIBUTION/initpost" "$DISTRIBDIR/$DISTRIBUTION/initpost" "" - findDir PKGDIR "$CONFDIR/.distributions/$DISTRIBUTION/pkgs" "$DISTRIBDIR/$DISTRIBUTION/pkgs" / }