diff options
Diffstat (limited to 'bitbake/lib/bb/shell.py')
-rw-r--r-- | bitbake/lib/bb/shell.py | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/bitbake/lib/bb/shell.py b/bitbake/lib/bb/shell.py index fc213c3f4a..745091fb7d 100644 --- a/bitbake/lib/bb/shell.py +++ b/bitbake/lib/bb/shell.py | |||
@@ -68,7 +68,6 @@ leave_mainloop = False | |||
68 | last_exception = None | 68 | last_exception = None |
69 | cooker = None | 69 | cooker = None |
70 | parsed = False | 70 | parsed = False |
71 | initdata = None | ||
72 | debug = os.environ.get( "BBSHELL_DEBUG", "" ) | 71 | debug = os.environ.get( "BBSHELL_DEBUG", "" ) |
73 | 72 | ||
74 | ########################################################################## | 73 | ########################################################################## |
@@ -156,11 +155,14 @@ class BitBakeShellCommands: | |||
156 | cooker.configuration.cmd = cmd | 155 | cooker.configuration.cmd = cmd |
157 | 156 | ||
158 | td = taskdata.TaskData(cooker.configuration.abort) | 157 | td = taskdata.TaskData(cooker.configuration.abort) |
158 | localdata = data.createCopy(cooker.configuration.data) | ||
159 | data.update_data(localdata) | ||
160 | data.expandKeys(localdata) | ||
159 | 161 | ||
160 | try: | 162 | try: |
161 | tasks = [] | 163 | tasks = [] |
162 | for name in names: | 164 | for name in names: |
163 | td.add_provider(cooker.configuration.data, cooker.status, name) | 165 | td.add_provider(localdata, cooker.status, name) |
164 | providers = td.get_provider(name) | 166 | providers = td.get_provider(name) |
165 | 167 | ||
166 | if len(providers) == 0: | 168 | if len(providers) == 0: |
@@ -168,9 +170,9 @@ class BitBakeShellCommands: | |||
168 | 170 | ||
169 | tasks.append([name, "do_%s" % cooker.configuration.cmd]) | 171 | tasks.append([name, "do_%s" % cooker.configuration.cmd]) |
170 | 172 | ||
171 | td.add_unresolved(cooker.configuration.data, cooker.status) | 173 | td.add_unresolved(localdata, cooker.status) |
172 | 174 | ||
173 | rq = runqueue.RunQueue(cooker, cooker.configuration.data, cooker.status, td, tasks) | 175 | rq = runqueue.RunQueue(cooker, localdata, cooker.status, td, tasks) |
174 | rq.prepare_runqueue() | 176 | rq.prepare_runqueue() |
175 | rq.execute_runqueue() | 177 | rq.execute_runqueue() |
176 | 178 | ||
@@ -217,8 +219,8 @@ class BitBakeShellCommands: | |||
217 | edit.usage = "<providee>" | 219 | edit.usage = "<providee>" |
218 | 220 | ||
219 | def environment( self, params ): | 221 | def environment( self, params ): |
220 | """Dump out the outer BitBake environment (see bbread)""" | 222 | """Dump out the outer BitBake environment""" |
221 | data.emit_env(sys.__stdout__, cooker.configuration.data, True) | 223 | cooker.showEnvironment() |
222 | 224 | ||
223 | def exit_( self, params ): | 225 | def exit_( self, params ): |
224 | """Leave the BitBake Shell""" | 226 | """Leave the BitBake Shell""" |
@@ -241,11 +243,10 @@ class BitBakeShellCommands: | |||
241 | oldcmd = cooker.configuration.cmd | 243 | oldcmd = cooker.configuration.cmd |
242 | cooker.configuration.cmd = cmd | 244 | cooker.configuration.cmd = cmd |
243 | 245 | ||
244 | thisdata = copy.deepcopy( initdata ) | 246 | thisdata = data.createCopy(cooker.configuration.data) |
245 | # Caution: parse.handle modifies thisdata, hence it would | 247 | data.update_data(thisdata) |
246 | # lead to pollution cooker.configuration.data, which is | 248 | data.expandKeys(thisdata) |
247 | # why we use it on a safe copy we obtained from cooker right after | 249 | |
248 | # parsing the initial *.conf files | ||
249 | try: | 250 | try: |
250 | bbfile_data = parse.handle( bf, thisdata ) | 251 | bbfile_data = parse.handle( bf, thisdata ) |
251 | except parse.ParseError: | 252 | except parse.ParseError: |
@@ -393,6 +394,11 @@ SRC_URI = "" | |||
393 | os.system( "%s %s/%s" % ( os.environ.get( "EDITOR" ), fulldirname, filename ) ) | 394 | os.system( "%s %s/%s" % ( os.environ.get( "EDITOR" ), fulldirname, filename ) ) |
394 | new.usage = "<directory> <filename>" | 395 | new.usage = "<directory> <filename>" |
395 | 396 | ||
397 | def package( self, params ): | ||
398 | """Execute 'package' on a providee""" | ||
399 | self.build( params, "package" ) | ||
400 | package.usage = "<providee>" | ||
401 | |||
396 | def pasteBin( self, params ): | 402 | def pasteBin( self, params ): |
397 | """Send a command + output buffer to the pastebin at http://rafb.net/paste""" | 403 | """Send a command + output buffer to the pastebin at http://rafb.net/paste""" |
398 | index = params[0] | 404 | index = params[0] |
@@ -501,8 +507,8 @@ SRC_URI = "" | |||
501 | interpreter.interact( "SHELL: Expert Mode - BitBake Python %s\nType 'help' for more information, press CTRL-D to switch back to BBSHELL." % sys.version ) | 507 | interpreter.interact( "SHELL: Expert Mode - BitBake Python %s\nType 'help' for more information, press CTRL-D to switch back to BBSHELL." % sys.version ) |
502 | 508 | ||
503 | def showdata( self, params ): | 509 | def showdata( self, params ): |
504 | """Execute 'showdata' on a providee""" | 510 | """Show the parsed metadata for a given providee""" |
505 | self.build( params, "showdata" ) | 511 | cooker.showEnvironment(None, params) |
506 | showdata.usage = "<providee>" | 512 | showdata.usage = "<providee>" |
507 | 513 | ||
508 | def setVar( self, params ): | 514 | def setVar( self, params ): |
@@ -732,10 +738,6 @@ class BitBakeShell: | |||
732 | 738 | ||
733 | print __credits__ | 739 | print __credits__ |
734 | 740 | ||
735 | # save initial cooker configuration (will be reused in file*** commands) | ||
736 | global initdata | ||
737 | initdata = copy.deepcopy( cooker.configuration.data ) | ||
738 | |||
739 | def cleanup( self ): | 741 | def cleanup( self ): |
740 | """Write readline history and clean up resources""" | 742 | """Write readline history and clean up resources""" |
741 | debugOut( "writing command history" ) | 743 | debugOut( "writing command history" ) |