Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/ebuild/
Date: Wed, 05 Jun 2013 18:08:46
Message-Id: 1370455007.86c8b9ce562b4cecab65c03d2cbd2cae983d1b57.dywi@gentoo
1 commit: 86c8b9ce562b4cecab65c03d2cbd2cae983d1b57
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Wed Jun 5 17:56:47 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Wed Jun 5 17:56:47 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=86c8b9ce
7
8 support '->' in SRC_URI
9
10 ---
11 roverlay/ebuild/abstractcomponents.py | 34 ++++++++++++++++++----------------
12 roverlay/ebuild/creation.py | 7 ++++++-
13 roverlay/ebuild/evars.py | 33 ++++++++++++++++++++++++++++++---
14 3 files changed, 54 insertions(+), 20 deletions(-)
15
16 diff --git a/roverlay/ebuild/abstractcomponents.py b/roverlay/ebuild/abstractcomponents.py
17 index ec3db04..f8c9aed 100644
18 --- a/roverlay/ebuild/abstractcomponents.py
19 +++ b/roverlay/ebuild/abstractcomponents.py
20 @@ -144,7 +144,7 @@ class ListValue ( object ):
21 if self.empty_value is not None:
22 self.value.append ( self.empty_value )
23
24 - self.add_value ( value )
25 + self.add ( value )
26 # --- end of set_value (...) ---
27
28 def add ( self, value ):
29 @@ -157,20 +157,22 @@ class ListValue ( object ):
30 self.value.append ( value )
31 # --- end of add (...) ---
32
33 - add_value = add
34 + def add_value ( self, *args, **kwargs ):
35 + raise NotImplementedError ( "add_value() is deprecated - use add()!" )
36 + # --- end of add_value (...) ---
37 +
38 + def join_value_str ( self, join_str, quoted=False ):
39 + return join_str.join (
40 + get_value_str (
41 + v,
42 + quote_char = "'" if quoted else None
43 + ) for v in self.value
44 + )
45 + # --- end of join_value_str (...) ---
46
47 def to_str ( self ):
48 """Returns a string representing this ListValue."""
49
50 - def get_value_strings ( join_str, quoted=False ):
51 - return join_str.join (
52 - get_value_str (
53 - v,
54 - quote_char = "'" if quoted else None
55 - ) for v in self.value
56 - )
57 - # --- end of get_value_strings (...) ---
58 -
59 value_count = len ( self.value )
60
61 if self.is_bash_array:
62 @@ -180,7 +182,7 @@ class ListValue ( object ):
63
64 elif self.single_line or value_count == 1:
65 # one value or several values in a single line
66 - ret = "( " + get_value_strings ( ' ', True ) + " )"
67 + ret = "( " + self.join_value_str ( ' ', True ) + " )"
68
69 else:
70 ret = "{head}{values}{tail}".format (
71 @@ -188,20 +190,20 @@ class ListValue ( object ):
72 ( '(\n' + self.val_indent )
73 if self.insert_leading_newline else '( '
74 ),
75 - values = get_value_strings ( self.line_join_str, True ),
76 + values = self.join_value_str ( self.line_join_str, True ),
77 tail = '\n' + self.var_indent + ')\n'
78 )
79 else:
80 if value_count == 0:
81 ret = ""
82 elif self.single_line or value_count == 1:
83 - ret = get_value_strings ( ' ' )
84 + ret = self.join_value_str ( ' ' )
85 else:
86 if self.insert_leading_newline:
87 ret = '\n' + self.val_indent
88 - ret += get_value_strings ( self.line_join_str )
89 + ret += self.join_value_str ( self.line_join_str )
90 else:
91 - ret = get_value_strings ( self.line_join_str )
92 + ret = self.join_value_str ( self.line_join_str )
93
94 if self.append_indented_newline:
95 ret += '\n' + self.var_indent
96
97 diff --git a/roverlay/ebuild/creation.py b/roverlay/ebuild/creation.py
98 index 8ea1854..de5a358 100644
99 --- a/roverlay/ebuild/creation.py
100 +++ b/roverlay/ebuild/creation.py
101 @@ -153,7 +153,12 @@ class EbuildCreation ( object ):
102 ebuild.use ( self._get_ebuild_description() )
103
104 # SRC_URI
105 - ebuild.use ( evars.SRC_URI ( self.package_info ['SRC_URI'] ) )
106 + ebuild.use ( evars.SRC_URI (
107 + src_uri = self.package_info ['SRC_URI'],
108 + src_uri_dest = self.package_info.get (
109 + "src_uri_dest", do_fallback=True
110 + )
111 + ) )
112
113 ebuild_text = ebuild.to_str()
114
115
116 diff --git a/roverlay/ebuild/evars.py b/roverlay/ebuild/evars.py
117 index 7bc461b..23f7e27 100644
118 --- a/roverlay/ebuild/evars.py
119 +++ b/roverlay/ebuild/evars.py
120 @@ -19,7 +19,7 @@ __all__ = [ 'DEPEND', 'DESCRIPTION', 'IUSE', 'MISSINGDEPS',
121
122 import roverlay.strutil
123
124 -from roverlay.ebuild.abstractcomponents import ListValue, EbuildVar
125 +from roverlay.ebuild.abstractcomponents import ListValue, EbuildVar, get_value_str
126
127 IUSE_SUGGESTS = 'R_suggests'
128 RSUGGESTS_NAME = IUSE_SUGGESTS.upper()
129 @@ -68,11 +68,38 @@ class KEYWORDS ( EbuildVar ):
130 # --- end of __init__ (...) ---
131
132
133 +class SRC_URI_ListValue ( ListValue ):
134 + """List value that represents SRC_URI entries."""
135 +
136 + def _accept_value ( self, value ): raise NotImplementedError()
137 +
138 + def add ( self, value ):
139 + """Adds/Appends a value."""
140 + if value [0]:
141 + self.value.append ( value )
142 + else:
143 + raise ValueError ( value )
144 + # --- end of add (...) ---
145 +
146 + def join_value_str ( self, join_str, quoted=False ):
147 + return join_str.join (
148 + get_value_str (
149 + (
150 + "{} -> {}".format ( v[0], v[1] ) if v[1] else str ( v[0] )
151 + ),
152 + quote_char=( "'" if quoted else None )
153 + ) for v in self.value
154 + )
155 + # --- end of join_value_str (...) ---
156 +
157 +
158 class SRC_URI ( EbuildVar ):
159 """A SRC_URI="..." statement."""
160 - def __init__ ( self, src_uri ):
161 + def __init__ ( self, src_uri, src_uri_dest ):
162 super ( SRC_URI, self ) . __init__ (
163 - name='SRC_URI', value=src_uri, priority=90
164 + name = 'SRC_URI',
165 + value = SRC_URI_ListValue ( value=( src_uri, src_uri_dest ) ),
166 + priority = 90
167 )
168
169 def _empty_str ( self ):