1 |
commit: 9ca4636cfbf9020b513ebab8e1d5ee4fefef8e47 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Thu Jun 28 13:28:18 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Thu Jun 28 13:28:18 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=9ca4636c |
7 |
|
8 |
ebuild: don't print empty vars (DEPEND="" etc.) |
9 |
|
10 |
modified: roverlay/ebuild/abstractcomponents.py |
11 |
|
12 |
--- |
13 |
roverlay/ebuild/abstractcomponents.py | 25 +++++++++++++++++++++---- |
14 |
1 files changed, 21 insertions(+), 4 deletions(-) |
15 |
|
16 |
diff --git a/roverlay/ebuild/abstractcomponents.py b/roverlay/ebuild/abstractcomponents.py |
17 |
index 019c252..5437dfc 100644 |
18 |
--- a/roverlay/ebuild/abstractcomponents.py |
19 |
+++ b/roverlay/ebuild/abstractcomponents.py |
20 |
@@ -37,9 +37,19 @@ class ListValue ( object ): |
21 |
self.set_value ( value ) |
22 |
# --- end of __init__ (...) --- |
23 |
|
24 |
+ def _accept_value ( self, value ): |
25 |
+ if value is None: |
26 |
+ return False |
27 |
+ # "not str or len > 0" will raise exceptions for integers etc. |
28 |
+ elif isinstance ( value, str ) and len ( value ) == 0: |
29 |
+ return False |
30 |
+ else: |
31 |
+ return True |
32 |
+ # --- end _accept_value (...) --- |
33 |
+ |
34 |
def __len__ ( self ): |
35 |
l = len ( self.value ) |
36 |
- return l if self.empty_value is None else l - 1 |
37 |
+ return max ( 0, l if self.empty_value is None else l - 1 ) |
38 |
|
39 |
def set_level ( self, level ): |
40 |
"""Sets the indention level.""" |
41 |
@@ -54,12 +64,14 @@ class ListValue ( object ): |
42 |
self.value = list() |
43 |
if self.empty_value is not None: |
44 |
self.value.append ( self.empty_value ) |
45 |
- self.add_value ( value ) |
46 |
+ |
47 |
+ if self._accept_value ( value ): |
48 |
+ self.add_value ( value ) |
49 |
# --- end of set_value (...) --- |
50 |
|
51 |
def add_value ( self, value ): |
52 |
"""Adds/Appends a value.""" |
53 |
- if value is None: |
54 |
+ if not self._accept_value ( value ): |
55 |
pass |
56 |
elif listlike ( value ): |
57 |
self.value.extend ( value ) |
58 |
@@ -119,7 +131,12 @@ class EbuildVar ( object ): |
59 |
(EbuildVar's active() returns always True, derived classes may |
60 |
override this.) |
61 |
""" |
62 |
- return True |
63 |
+ if hasattr ( self, 'enabled' ): |
64 |
+ return self.enabled |
65 |
+ elif hasattr ( self.value, '__len__' ): |
66 |
+ return len ( self.value ) > 0 |
67 |
+ else: |
68 |
+ return True |
69 |
|
70 |
def __str__ ( self ): |
71 |
return '%s%s="%s"' % ( self.indent, self.name, self.value ) |