X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvserver-build.functions;h=981c037d7c25efd9a7a3f98b19fac10db175c03e;hb=2822ba293eb308225c50d346930c47bf98d9927b;hp=38e6380711909e3d30f5b843d0353c9d5bf4a378;hpb=3b34449070c0846fdc49436d1edd5916512f1644;p=util-vserver.git diff --git a/scripts/vserver-build.functions b/scripts/vserver-build.functions index 38e6380..981c037 100644 --- a/scripts/vserver-build.functions +++ b/scripts/vserver-build.functions @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions 2315 2006-09-15 19:16:48Z hollow $ --*- sh -*-- +# $Id: vserver-build.functions,v 1.18 2005/07/04 22:38:42 ensc Exp $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz # @@ -20,8 +20,6 @@ ROOTDIR= ROOTDIR_REL= -CACHEDIR= -CACHEDIR_REL= VSERVERDIRNAME= VDIR= @@ -50,17 +48,6 @@ function makeDevEntry esac } -function populateDev -{ - local spec - - mkdir -p -m755 "$VDIR"/dev/pts - - while read spec; do - makeDevEntry "$VDIR"/dev $spec - done <$_DEV_FILE -} - function populateDirectory { local dst=$1 @@ -95,23 +82,6 @@ function _setRootDir } } -function _setCacheDir -{ - test -z "$CACHEDIR" || return 0 - - for item in "\"$__CONFDIR/.defaults/cachebase\" 1" "$__PKGCACHEDIR"; do - eval set -- "$item" - CACHEDIR=$1 - CACHEDIR_REL=$2 - test ! -d "$CACHEDIR" || break - done - - test -d "$CACHEDIR" || { - echo "Cache-directory '$CACHEDIR' does not exist or is invalid" >&2 - exit 1 - } -} - function _setVserverDir { test -z "$VSERVERDIRNAME" || return 0 @@ -135,7 +105,7 @@ function _renameVserverCfg local i for i in "$VDIR" "$SETUP_CONFDIR"; do - test ! -e "$i" || isDirectoryEmpty "$i" || { + test ! -e "$i" || { mv "$i" "$i$suffix" say "Renamed '$i' to '$i$suffix'" } @@ -143,46 +113,37 @@ function _renameVserverCfg } -## Usage: getDistribution [] [] +## Usage: getDistribution [] function getDistribution { - local ignore_config=$2 - - if test -z "$DISTRIBUTION"; then - if test -e /etc/fedora-release; then - set -- $(cat /etc/fedora-release) - DISTRIBUTION=fdr$4 - elif test -e /etc/redhat-release; then - set -- $(cat /etc/redhat-release) - DISTRIBUTION=rh$5 - 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 - elif test -e /etc/gentoo-release; then - set -- $(cat /etc/gentoo-release) - DISTRIBUTION=gentoo$5 - elif test -e /etc/slackware-version; then - set -- $(cat /etc/slackware-version) - DISTRIBUTION=slackware$2 - elif test -n "$1"; then - DISTRIBUTION=$1 - else - colpanic $"\ -ERROR: Can not determine distribution; please specify it manually with - the '-d' option." - fi - fi - - test -n "$ignore_config" -o \ - -d "$__CONFDIR/.distributions/$DISTRIBUTION" -o \ - -d "$__DISTRIBDIR/$DISTRIBUTION" || - colpanic $"\ -ERROR: Can not find configuration for the distribution '$DISTRIBUTION'; - please read http://linux-vserver.org/HowToRegisterNewDistributions - for information how to add support for your own distribution." + test -z "$DISTRIBUTION" || return 0 + + if test -e /etc/fedora-release; then + set -- $(cat /etc/fedora-release) + DISTRIBUTION=fdr$4 + elif test -e /etc/redhat-release; then + set -- $(cat /etc/redhat-release) + DISTRIBUTION=rh$5 + 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 + elif test -e /etc/gentoo-release; then + set -- $(cat /etc/gentoo-release) + DISTRIBUTION=gentoo$5 + elif test -e /etc/slackware-release; then + set -- $(cat /etc/slackware-release) + DISTRIBUTION=slackware$2 + elif test -n "$1"; then + DISTRIBUTION=$1 + else + echo \ +"Can not determine distribution; please specify it manually +with the '-d' option" >&2 + exit 1 + fi >&2 } function base._addGeneratedFile @@ -194,21 +155,27 @@ function base._addGeneratedFile function base.initFilesystem { test -z "$1" || _renameVserverCfg - { isDirectoryEmpty "$VDIR" && test ! -e "$SETUP_CONFDIR"; } || colpanic $"\ -vserver-topdirectory '$VDIR' and/or configuration at '$SETUP_CONFDIR' -exist already; please try to use '--force', or remove them manually." + test ! -d "$VDIR" -a ! -d "$SETUP_CONFDIR" || { + 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 -m755 "$VDIR" - $_SETATTR --~barrier "$VDIR" + chattr -t "$VDIR" base._addGeneratedFile "$VDIR" - mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/etc + mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/{dev/pts,etc} base._addGeneratedFile "$SETUP_CONFDIR" - ln -s "$VDIR" "$SETUP_CONFDIR/vdir" - ln -s "$CACHEDIR/$VSERVERDIRNAME" "$SETUP_CONFDIR/cache" + ln -s "$VDIR" "$SETUP_CONFDIR/vdir" - populateDev + 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 \ @@ -222,7 +189,6 @@ exist already; please try to use '--force', or remove them manually." function base._initVariables { _setRootDir - _setCacheDir _setVserverDir _setVdir @@ -237,7 +203,7 @@ function base.__cleanup test -z "$OPTION_KEEP" || return 0 test -z "$__BASE_SUCCESS" || return 0 - rm -rf "${__BASE_GENERATED_FILES[@]}" + echo rm -rf "${__BASE_GENERATED_FILES[@]}" } function base.init