diff options
Diffstat (limited to 'import-layers/yocto-poky/bitbake/bin/toaster-eventreplay')
-rwxr-xr-x | import-layers/yocto-poky/bitbake/bin/toaster-eventreplay | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay b/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay deleted file mode 100755 index 80967a093..000000000 --- a/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python3 -# ex:ts=4:sw=4:sts=4:et -# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- -# -# Copyright (C) 2014 Alex Damian -# -# This file re-uses code spread throughout other Bitbake source files. -# As such, all other copyrights belong to their own right holders. -# -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -""" -This command takes a filename as a single parameter. The filename is read -as a build eventlog, and the ToasterUI is used to process events in the file -and log data in the database -""" - -import os -import sys -import json -import pickle -import codecs - -from collections import namedtuple - -# mangle syspath to allow easy import of modules -from os.path import join, dirname, abspath -sys.path.insert(0, join(dirname(dirname(abspath(__file__))), 'lib')) - -import bb.cooker -from bb.ui import toasterui - -class EventPlayer: - """Emulate a connection to a bitbake server.""" - - def __init__(self, eventfile, variables): - self.eventfile = eventfile - self.variables = variables - self.eventmask = [] - - def waitEvent(self, _timeout): - """Read event from the file.""" - line = self.eventfile.readline().strip() - if not line: - return - try: - event_str = json.loads(line)['vars'].encode('utf-8') - event = pickle.loads(codecs.decode(event_str, 'base64')) - event_name = "%s.%s" % (event.__module__, event.__class__.__name__) - if event_name not in self.eventmask: - return - return event - except ValueError as err: - print("Failed loading ", line) - raise err - - def runCommand(self, command_line): - """Emulate running a command on the server.""" - name = command_line[0] - - if name == "getVariable": - var_name = command_line[1] - variable = self.variables.get(var_name) - if variable: - return variable['v'], None - return None, "Missing variable %s" % var_name - - elif name == "getAllKeysWithFlags": - dump = {} - flaglist = command_line[1] - for key, val in self.variables.items(): - try: - if not key.startswith("__"): - dump[key] = { - 'v': val['v'], - 'history' : val['history'], - } - for flag in flaglist: - dump[key][flag] = val[flag] - except Exception as err: - print(err) - return (dump, None) - - elif name == 'setEventMask': - self.eventmask = command_line[-1] - return True, None - - else: - raise Exception("Command %s not implemented" % command_line[0]) - - def getEventHandle(self): - """ - This method is called by toasterui. - The return value is passed to self.runCommand but not used there. - """ - pass - -def main(argv): - with open(argv[-1]) as eventfile: - # load variables from the first line - variables = json.loads(eventfile.readline().strip())['allvariables'] - - params = namedtuple('ConfigParams', ['observe_only'])(True) - player = EventPlayer(eventfile, variables) - - return toasterui.main(player, player, params) - -# run toaster ui on our mock bitbake class -if __name__ == "__main__": - if len(sys.argv) != 2: - print("Usage: %s <event file>" % os.path.basename(sys.argv[0])) - sys.exit(1) - - sys.exit(main(sys.argv)) |