- commit initial split install masking code. this commits adds new portage variable...
authorNed Ludd <solar@gentoo.org>
Wed, 8 Mar 2006 03:39:54 +0000 (03:39 -0000)
committerNed Ludd <solar@gentoo.org>
Wed, 8 Mar 2006 03:39:54 +0000 (03:39 -0000)
svn path=/main/trunk/; revision=2825

bin/ebuild.sh

index b369d1f38ef6707427b7a9d8dfc9963757293b29..546182ee401b50edf287c25852e0c08fc26b13cf 100755 (executable)
@@ -1069,6 +1069,9 @@ dyn_install() {
        prepall
        cd "${D}"
 
+       # Allow user to remove unwanted files.
+       install_mask "${D}" ${PKG_INSTALL_MASK}
+
        declare -i UNSAFE=0
        for i in $(find "${D}/" -type f -perm -2002); do
                ((UNSAFE++))
@@ -1298,6 +1301,28 @@ dyn_install() {
        trap SIGINT SIGQUIT
 }
 
+install_mask() {
+       local root="$1"
+       shift
+       local install_mask="$*"
+
+       # we don't want globbing for initial expansion, but afterwards, we do
+       local shopts=$-
+       set -o noglob
+       for no_inst in ${install_mask}; do
+               set +o noglob
+               einfo "Removing ${no_inst}"
+               # normal stuff
+               rm -Rf ${root}/${no_inst} >&/dev/null
+
+               # we also need to handle globs (*.a, *.h, etc)
+               find "${root}" -name ${no_inst} -exec rm -fR {} \; >&/dev/null
+       done
+       # set everything back the way we found it
+       set +o noglob
+       set -${shopts}
+}
+
 dyn_preinst() {
        # set IMAGE depending if this is a binary or compile merge
        [ "${EMERGE_FROM}" == "binary" ] && IMAGE=${PKG_TMPDIR}/${PF}/bin \
@@ -1315,21 +1340,7 @@ dyn_preinst() {
                fi
        done
 
-       # we don't want globbing for initial expansion, but afterwards, we do
-       local shopts=$-
-       set -o noglob
-       for no_inst in ${INSTALL_MASK}; do
-               set +o noglob
-               einfo "Removing ${no_inst}"
-               # normal stuff
-               rm -Rf ${IMAGE}/${no_inst} >&/dev/null
-
-               # we also need to handle globs (*.a, *.h, etc)
-               find "${IMAGE}" -name ${no_inst} -exec rm -fR {} \; >&/dev/null
-       done
-       # set everything back the way we found it
-       set +o noglob
-       set -${shopts}
+       install_mask "${IMAGE}" ${INSTALL_MASK}
 
        # remove share dir if unnessesary
        if hasq nodoc $FEATURES -o hasq noman $FEATURES -o hasq noinfo $FEATURES; then