commit:     b0416b85570a5d30e12c4f7ebb45aa26657d3088
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 17:23:21 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 17:23:21 2017 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b0416b85

crossdev: allow set_eopts_on_pkg_status() to accept multiple USE flags

The semantics is "any-of" passed flags (if enabled) triggers full package
rebuild.

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 crossdev | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/crossdev b/crossdev
index f7d2fdc..d546dbe 100755
--- a/crossdev
+++ b/crossdev
@@ -1219,11 +1219,22 @@ emerged_with_use() {
        local pkg=$1 use=$2
        grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
 }
-# Force package rebuild if USE-flag is set otherwise install package only if 
flag is missing.
+# Force package rebuild if any of passed USE-flag is set otherwise install 
package only if flag is missing.
+# $1    - pkg
+# $2... - USE flags to check
 set_eopts_on_pkg_status() {
-       emerged_with_use "$@" \
-               && EOPTS=${EOPTS_DEF} \
-               || EOPTS=${EOPTS_UP}
+       local pkg=$1 flag
+       shift
+
+       for flag in "$@"; do
+               if emerged_with_use "${pkg}" "${flag}"; then
+                       # Force rebuild
+                       EOPTS=${EOPTS_DEF}
+                       return
+               fi
+       done
+       # Install if missing
+       EOPTS=${EOPTS_UP}
 }
 doemerge() {
        local category="cross-${CTARGET}"

Reply via email to