1 |
commit: b0416b85570a5d30e12c4f7ebb45aa26657d3088 |
2 |
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Dec 30 17:23:21 2017 +0000 |
4 |
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Dec 30 17:23:21 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=b0416b85 |
7 |
|
8 |
crossdev: allow set_eopts_on_pkg_status() to accept multiple USE flags |
9 |
|
10 |
The semantics is "any-of" passed flags (if enabled) triggers full package |
11 |
rebuild. |
12 |
|
13 |
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> |
14 |
|
15 |
crossdev | 19 +++++++++++++++---- |
16 |
1 file changed, 15 insertions(+), 4 deletions(-) |
17 |
|
18 |
diff --git a/crossdev b/crossdev |
19 |
index f7d2fdc..d546dbe 100755 |
20 |
--- a/crossdev |
21 |
+++ b/crossdev |
22 |
@@ -1219,11 +1219,22 @@ emerged_with_use() { |
23 |
local pkg=$1 use=$2 |
24 |
grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE |
25 |
} |
26 |
-# Force package rebuild if USE-flag is set otherwise install package only if flag is missing. |
27 |
+# Force package rebuild if any of passed USE-flag is set otherwise install package only if flag is missing. |
28 |
+# $1 - pkg |
29 |
+# $2... - USE flags to check |
30 |
set_eopts_on_pkg_status() { |
31 |
- emerged_with_use "$@" \ |
32 |
- && EOPTS=${EOPTS_DEF} \ |
33 |
- || EOPTS=${EOPTS_UP} |
34 |
+ local pkg=$1 flag |
35 |
+ shift |
36 |
+ |
37 |
+ for flag in "$@"; do |
38 |
+ if emerged_with_use "${pkg}" "${flag}"; then |
39 |
+ # Force rebuild |
40 |
+ EOPTS=${EOPTS_DEF} |
41 |
+ return |
42 |
+ fi |
43 |
+ done |
44 |
+ # Install if missing |
45 |
+ EOPTS=${EOPTS_UP} |
46 |
} |
47 |
doemerge() { |
48 |
local category="cross-${CTARGET}" |