# $Id: vserver-build.functions.pkgmgmt 2110 2005-06-30 06:16:58Z ensc $ --*- sh -*-- # Copyright (C) 2004 Enrico Scholz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. PKGCFGBASE= PKGCFGBASE_REL= YUM_RELEASEPKGS=( {redhat,fedora}-release ) function pkgmgmt._setPkgCfgBase { test -z "$PKGCFGBASE" || return 0 for item in "\"$__CONFDIR/.defaults/apps/pkgmgmt/base\" 1" ${ROOTDIR:+"$ROOTDIR/.pkg"} "$__DEFAULT_VSERVERPKGDIR"; do eval set -- "$item" PKGCFGBASE=$1 PKGCFGBASE_REL=$2 test ! -d "$PKGCFGBASE" || break done test -d "$PKGCFGBASE" || { echo "pkgcfgbase-dir '$PKGCFGBASE' does not exist or is invalid" >&2 exit 1 } } function pkgmgmt._setPkgCfg { pkgmgmt._setPkgCfgBase test -z "$PKGCFGDIR" || return 0 PKGCFGDIR="$PKGCFGBASE/$VSERVERDIRNAME" } function pkgmgmt._renameVserverPkgCfg { local suffix=.~$(date +'%s')~ local i for i in "$PKGCFGDIR"; do test ! -e "$i" || { mv "$i" "$i$suffix" say "Renamed '$i' to '$i$suffix'" } done } function pkgmgmt.initFilesystem { test -z "$1" || pkgmgmt._renameVserverPkgCfg test ! -d "$PKGCFGDIR" || { echo $\ "vserver pkgmgmt-directory exists already; please try to use '--force'; or remove it manually" >&2 exit 1 } mkdir -p "$PKGCFGDIR" base._addGeneratedFile "$PKGCFGDIR" mkdir -p "${SETUP_CONFDIR:?}"/apps/pkgmgmt test -z "$PKGCFGDIR" || { ln -s "$PKGCFGDIR" "$SETUP_CONFDIR/apps/pkgmgmt/base" test "$_EXECDIR" = / || ln -s "${_EXECDIR:?}" "$SETUP_CONFDIR/apps/pkgmgmt/execdir" } } function pkgmgmt.initVariables { pkgmgmt._setPkgCfg findDir PKGINSTALLDIR "$__CONFDIR/.distributions/$DISTRIBUTION/pkgs" "$__DISTRIBDIR/$DISTRIBUTION/pkgs" / }