Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/ebuild/
Date: Thu, 28 Jun 2012 13:29:20
Message-Id: 1340890098.9ca4636cfbf9020b513ebab8e1d5ee4fefef8e47.dywi@gentoo
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 )