diff options
Diffstat (limited to 'bitbake/lib/bb/command.py')
| -rw-r--r-- | bitbake/lib/bb/command.py | 91 |
1 files changed, 25 insertions, 66 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index b38c151b3d..2879950933 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py | |||
| @@ -450,54 +450,38 @@ class CommandsSync: | |||
| 450 | return all_p, best | 450 | return all_p, best |
| 451 | getRuntimeProviders.readonly = True | 451 | getRuntimeProviders.readonly = True |
| 452 | 452 | ||
| 453 | def dataStoreConnectorFindVar(self, command, params): | 453 | def dataStoreConnectorCmd(self, command, params): |
| 454 | dsindex = params[0] | 454 | dsindex = params[0] |
| 455 | name = params[1] | 455 | method = params[1] |
| 456 | datastore = command.remotedatastores[dsindex] | 456 | args = params[2] |
| 457 | value, overridedata = datastore._findVar(name) | 457 | kwargs = params[3] |
| 458 | |||
| 459 | if value: | ||
| 460 | content = value.get('_content', None) | ||
| 461 | if isinstance(content, bb.data_smart.DataSmart): | ||
| 462 | # Value is a datastore (e.g. BB_ORIGENV) - need to handle this carefully | ||
| 463 | idx = command.remotedatastores.check_store(content, True) | ||
| 464 | return {'_content': DataStoreConnectionHandle(idx), | ||
| 465 | '_connector_origtype': 'DataStoreConnectionHandle', | ||
| 466 | '_connector_overrides': overridedata} | ||
| 467 | elif isinstance(content, set): | ||
| 468 | return {'_content': list(content), | ||
| 469 | '_connector_origtype': 'set', | ||
| 470 | '_connector_overrides': overridedata} | ||
| 471 | else: | ||
| 472 | value['_connector_overrides'] = overridedata | ||
| 473 | else: | ||
| 474 | value = {} | ||
| 475 | value['_connector_overrides'] = overridedata | ||
| 476 | return value | ||
| 477 | dataStoreConnectorFindVar.readonly = True | ||
| 478 | 458 | ||
| 479 | def dataStoreConnectorGetKeys(self, command, params): | 459 | d = command.remotedatastores[dsindex] |
| 480 | dsindex = params[0] | 460 | ret = getattr(d, method)(*args, **kwargs) |
| 481 | datastore = command.remotedatastores[dsindex] | 461 | |
| 482 | return list(datastore.keys()) | 462 | if isinstance(ret, bb.data_smart.DataSmart): |
| 483 | dataStoreConnectorGetKeys.readonly = True | 463 | idx = command.remotedatastores.store(ret) |
| 464 | return DataStoreConnectionHandle(idx) | ||
| 484 | 465 | ||
| 485 | def dataStoreConnectorGetVarHistory(self, command, params): | 466 | return ret |
| 467 | |||
| 468 | def dataStoreConnectorVarHistCmd(self, command, params): | ||
| 486 | dsindex = params[0] | 469 | dsindex = params[0] |
| 487 | name = params[1] | 470 | method = params[1] |
| 488 | datastore = command.remotedatastores[dsindex] | 471 | args = params[2] |
| 489 | return datastore.varhistory.variable(name) | 472 | kwargs = params[3] |
| 490 | dataStoreConnectorGetVarHistory.readonly = True | ||
| 491 | 473 | ||
| 492 | def dataStoreConnectorExpandPythonRef(self, command, params): | 474 | d = command.remotedatastores[dsindex].varhistory |
| 493 | config_data_dict = params[0] | 475 | return getattr(d, method)(*args, **kwargs) |
| 494 | varname = params[1] | ||
| 495 | expr = params[2] | ||
| 496 | 476 | ||
| 497 | config_data = command.remotedatastores.receive_datastore(config_data_dict) | 477 | def dataStoreConnectorIncHistCmd(self, command, params): |
| 478 | dsindex = params[0] | ||
| 479 | method = params[1] | ||
| 480 | args = params[2] | ||
| 481 | kwargs = params[3] | ||
| 498 | 482 | ||
| 499 | varparse = bb.data_smart.VariableParse(varname, config_data) | 483 | d = command.remotedatastores[dsindex].inchistory |
| 500 | return varparse.python_sub(expr) | 484 | return getattr(d, method)(*args, **kwargs) |
| 501 | 485 | ||
| 502 | def dataStoreConnectorRelease(self, command, params): | 486 | def dataStoreConnectorRelease(self, command, params): |
| 503 | dsindex = params[0] | 487 | dsindex = params[0] |
| @@ -505,31 +489,6 @@ class CommandsSync: | |||
| 505 | raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex) | 489 | raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex) |
| 506 | command.remotedatastores.release(dsindex) | 490 | command.remotedatastores.release(dsindex) |
| 507 | 491 | ||
| 508 | def dataStoreConnectorSetVarFlag(self, command, params): | ||
| 509 | dsindex = params[0] | ||
| 510 | name = params[1] | ||
| 511 | flag = params[2] | ||
| 512 | value = params[3] | ||
| 513 | datastore = command.remotedatastores[dsindex] | ||
| 514 | datastore.setVarFlag(name, flag, value) | ||
| 515 | |||
| 516 | def dataStoreConnectorDelVar(self, command, params): | ||
| 517 | dsindex = params[0] | ||
| 518 | name = params[1] | ||
| 519 | datastore = command.remotedatastores[dsindex] | ||
| 520 | if len(params) > 2: | ||
| 521 | flag = params[2] | ||
| 522 | datastore.delVarFlag(name, flag) | ||
| 523 | else: | ||
| 524 | datastore.delVar(name) | ||
| 525 | |||
| 526 | def dataStoreConnectorRenameVar(self, command, params): | ||
| 527 | dsindex = params[0] | ||
| 528 | name = params[1] | ||
| 529 | newname = params[2] | ||
| 530 | datastore = command.remotedatastores[dsindex] | ||
| 531 | datastore.renameVar(name, newname) | ||
| 532 | |||
| 533 | def parseRecipeFile(self, command, params): | 492 | def parseRecipeFile(self, command, params): |
| 534 | """ | 493 | """ |
| 535 | Parse the specified recipe file (with or without bbappends) | 494 | Parse the specified recipe file (with or without bbappends) |
