60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
|
|
#!/usr/bin/env python3
|
||
|
|
#
|
||
|
|
# Copyright (C) 2014 Alex Damian
|
||
|
|
#
|
||
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
||
|
|
#
|
||
|
|
# This file re-uses code spread throughout other Bitbake source files.
|
||
|
|
# As such, all other copyrights belong to their own right holders.
|
||
|
|
#
|
||
|
|
|
||
|
|
"""
|
||
|
|
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
|
||
|
|
import warnings
|
||
|
|
warnings.simplefilter("default")
|
||
|
|
|
||
|
|
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
|
||
|
|
from bb.ui import eventreplay
|
||
|
|
|
||
|
|
def main(argv):
|
||
|
|
with open(argv[-1]) as eventfile:
|
||
|
|
# load variables from the first line
|
||
|
|
variables = None
|
||
|
|
while line := eventfile.readline().strip():
|
||
|
|
try:
|
||
|
|
variables = json.loads(line)['allvariables']
|
||
|
|
break
|
||
|
|
except (KeyError, json.JSONDecodeError):
|
||
|
|
continue
|
||
|
|
if not variables:
|
||
|
|
sys.exit("Cannot find allvariables entry in event log file %s" % argv[-1])
|
||
|
|
eventfile.seek(0)
|
||
|
|
params = namedtuple('ConfigParams', ['observe_only'])(True)
|
||
|
|
player = eventreplay.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))
|