Hi,

This eclass facilitates in some of the needs of the Gentoo Prefix
project.  For now it provides the 'eprefixify' function, which is
often used in Gentoo Prefix ebuilds to incorporate the used offset
prefix into files.

Next to this, the eclass sets the EPREFIX to the empty string, if unset.
Ideally we would have liked to set EROOT and ED, based on ROOT and D,
but since the latter variables need not to be available when the eclass
is sourced, EROOT and ED (which both consist of the E-less variable +
EPREFIX) might get set wrongly.

This eclass brings Gentoo Prefix ebuilds one step closer to gentoo-x86
ebuilds.

Please review.


-- 
Fabian Groffen
Gentoo on a different level
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: prefix.eclass 40407 2009-03-27 11:51:37Z grobian $

# @ECLASS: prefix.eclass
# @MAINTAINER:
# Feel free to contact the Prefix team through <pre...@gentoo.org> if
# you have problems, suggestions or questions.
# @BLURB: Eclass to provide Prefix functionality
# @DESCRIPTION:
# Gentoo Prefix allows users to install into a self defined offset
# located somewhere in the filesystem.  Prefix ebuilds require
# additional functions and variables which are defined by this eclass.

# @ECLASS-VARIABLE: EPREFIX
# @DESCRIPTION:
# The offset prefix of a Gentoo Prefix installation.  When Gentoo Prefix
# is not used, ${EPREFIX} should be "".  Prefix Portage sets EPREFIX,
# hence this eclass has nothing to do here in that case.
# Note that setting EPREFIX in the environment with Prefix Portage sets
# Portage into cross-prefix mode.
if [[ -z ${EPREFIX} ]]; then
        export EPREFIX=''
fi


# @FUNCTION: eprefixify
# @USAGE: <list of to be eprefixified files>
# @DESCRIPTION:
# replaces @GENTOO_PORTAGE_EPREFIX@ with ${EPREFIX} for the given files,
# dies if no arguments are given, a file does not exist, or changing a
# file failed.
eprefixify() {
        [[ $# -lt 1 ]] && die "at least one argument needed"

        einfo "Adjusting to prefix"
        for x in "$@" ; do
                if [[ -e ${x} ]] ; then
                        ebegin "  ${x##*/}"
                        sed -i -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}|g" 
"${x}"
                        r=$?
                        eend ${r}
                        [[ ${r} != 0 ]] && die "failed to eprefixify ${x}"
                else
                        die "${x} does not exist"
                fi
        done

        return 0
}


# vim: tw=72:

Reply via email to