local i
for i in "$VDIR" "$SETUP_CONFDIR"; do
- test ! -e "$i" || {
+ test ! -e "$i" || isDirectoryEmpty "$i" || {
mv "$i" "$i$suffix"
say "Renamed '$i' to '$i$suffix'"
}
}
-## Usage: getDistribution [<default>]
+## Usage: getDistribution [<default>] [<ignore-config>]
function getDistribution
{
- 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
+ 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."
}
function base._addGeneratedFile
function base.initFilesystem
{
test -z "$1" || _renameVserverCfg
- 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
+ { 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."
mkdir -p -m755 "$VDIR"
chattr -t "$VDIR"
test -z "$OPTION_KEEP" || return 0
test -z "$__BASE_SUCCESS" || return 0
- echo rm -rf "${__BASE_GENERATED_FILES[@]}"
+ rm -rf "${__BASE_GENERATED_FILES[@]}"
}
function base.init
{
+ test -z "$SETUP_CONTEXT" || ! $_VSERVER_INFO -q "$SETUP_CONTEXT" RUNNING || \
+ panic $"\
+Context '$SETUP_CONTEXT' is already in use. Please select another one."
+
trap "base.__cleanup" EXIT
base._initVariables
}