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}"