Simplify the conditionals from bug #273648. Thanks to Jonathan Callen
authorZac Medico <zmedico@gentoo.org>
Sat, 17 Oct 2009 05:41:19 +0000 (05:41 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 17 Oct 2009 05:41:19 +0000 (05:41 -0000)
<abcd@g.o> for this patch.

svn path=/main/trunk/; revision=14617

bin/ebuild.sh
bin/isolated-functions.sh

index 1c864b04f2795e2949c70651e1a2a71cf1f5f57c..d6e833639990b63bad7709c913cdc2566b2f775d 100755 (executable)
@@ -897,6 +897,15 @@ abort_install() {
        exit 1
 }
 
+has_phase_defined_up_to() {
+       for phase in unpack prepare configure compile install; do
+               has ${phase} ${DEFINED_PHASES} && return 0
+               [[ ${phase} == $1 ]] && return 1
+       done
+       # We shouldn't actually get here
+       return 1
+}
+
 dyn_prepare() {
 
        if [[ -e $PORTAGE_BUILDDIR/.prepared ]] ; then
@@ -909,9 +918,7 @@ dyn_prepare() {
                cd "${S}"
        elif hasq $EAPI 0 1 2; then
                cd "${WORKDIR}"
-       elif [[ -z ${A} ]] && \
-                       ! hasq unpack ${DEFINED_PHASES} && \
-                       ! hasq prepare ${DEFINED_PHASES} ; then
+       elif [[ -z ${A} ]] && ! has_phase_defined_up_to prepare; then
                cd "${WORKDIR}"
        else
                die "The source directory '${S}' doesn't exist"
@@ -942,10 +949,7 @@ dyn_configure() {
                cd "${S}"
        elif hasq $EAPI 0 1 2; then
                cd "${WORKDIR}"
-       elif [[ -z ${A} ]] && \
-                       ! hasq unpack ${DEFINED_PHASES} && \
-                       ! hasq prepare ${DEFINED_PHASES} && \
-                       ! hasq configure ${DEFINED_PHASES} ; then
+       elif [[ -z ${A} ]] && ! has_phase_defined_up_to configure; then
                cd "${WORKDIR}"
        else
                die "The source directory '${S}' doesn't exist"
@@ -978,11 +982,7 @@ dyn_compile() {
                cd "${S}"
        elif hasq $EAPI 0 1 2; then
                cd "${WORKDIR}"
-       elif [[ -z ${A} ]] && \
-                       ! hasq unpack ${DEFINED_PHASES} && \
-                       ! hasq prepare ${DEFINED_PHASES} && \
-                       ! hasq configure ${DEFINED_PHASES} && \
-                       ! hasq compile ${DEFINED_PHASES} ; then
+       elif [[ -z ${A} ]] && ! has_phase_defined_up_to compile; then
                cd "${WORKDIR}"
        else
                die "The source directory '${S}' doesn't exist"
@@ -1060,12 +1060,7 @@ dyn_install() {
                cd "${S}"
        elif hasq $EAPI 0 1 2; then
                cd "${WORKDIR}"
-       elif [[ -z ${A} ]] && \
-                       ! hasq unpack ${DEFINED_PHASES} && \
-                       ! hasq prepare ${DEFINED_PHASES} && \
-                       ! hasq configure ${DEFINED_PHASES} && \
-                       ! hasq compile ${DEFINED_PHASES} && \
-                       ! hasq install ${DEFINED_PHASES}; then
+       elif [[ -z ${A} ]] && ! has_phase_defined_up_to install; then
                cd "${WORKDIR}"
        else
                die "The source directory '${S}' doesn't exist"
index bbe6f045a2b55c6e3e2170dc177759e0c8e82a25..a3e7e3e56144b9b2a05b696efd79a43ae844548d 100755 (executable)
@@ -525,6 +525,7 @@ save_ebuild_env() {
                unset -f dump_trace die diefunc quiet_mode vecho elog_base eqawarn elog \
                        esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major \
                        KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has \
+                       has_phase_defined_up_to \
                        hasg hasgq hasv hasq qa_source qa_call \
                        addread addwrite adddeny addpredict _sb_append_var \
                        lchown lchgrp esyslog use usev useq has_version portageq \