mirror of
https://git.yoctoproject.org/poky
synced 2026-09-15 06:49:33 +02:00
oeqa/utils/commands.py: add support for postconfig option
Adding support for postconfig option to the bitbake() and related methods. This enables us to use 'bitbake -R postconfig_file <command>'. Usage: bitbake(cmd, postconfig="some confguration") 'postconfig_file' would contain what we add in 'postconfig' Other methods affected: get_bb_env(), get_bb_var() (From OE-Core rev: 4fe771940a8f59a0d5f1541978d6d9ff73b222f4) Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
aed4216e86
commit
a934aebcb8
@@ -15,6 +15,7 @@ import subprocess
|
|||||||
import threading
|
import threading
|
||||||
import logging
|
import logging
|
||||||
from oeqa.utils import CommandError
|
from oeqa.utils import CommandError
|
||||||
|
from oeqa.utils import ftools
|
||||||
|
|
||||||
class Command(object):
|
class Command(object):
|
||||||
def __init__(self, command, bg=False, timeout=None, data=None, **options):
|
def __init__(self, command, bg=False, timeout=None, data=None, **options):
|
||||||
@@ -106,24 +107,36 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, **opti
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def bitbake(command, ignore_status=False, timeout=None, **options):
|
def bitbake(command, ignore_status=False, timeout=None, postconfig=None, **options):
|
||||||
|
|
||||||
|
if postconfig:
|
||||||
|
postconfig_file = os.path.join(os.environ.get('BUILDDIR'), 'oeqa-post.conf')
|
||||||
|
ftools.write_file(postconfig_file, postconfig)
|
||||||
|
extra_args = "-R %s" % postconfig_file
|
||||||
|
else:
|
||||||
|
extra_args = ""
|
||||||
|
|
||||||
if isinstance(command, basestring):
|
if isinstance(command, basestring):
|
||||||
cmd = "bitbake " + command
|
cmd = "bitbake " + extra_args + " " + command
|
||||||
else:
|
else:
|
||||||
cmd = [ "bitbake" ] + command
|
cmd = [ "bitbake" ] + [a for a in (command + extra_args.split(" ")) if a not in [""]]
|
||||||
|
|
||||||
return runCmd(cmd, ignore_status, timeout, **options)
|
try:
|
||||||
|
return runCmd(cmd, ignore_status, timeout, **options)
|
||||||
|
finally:
|
||||||
|
if postconfig:
|
||||||
|
os.remove(postconfig_file)
|
||||||
|
|
||||||
|
|
||||||
def get_bb_env(target=None):
|
def get_bb_env(target=None, postconfig=None):
|
||||||
if target:
|
if target:
|
||||||
return runCmd("bitbake -e %s" % target).output
|
return bitbake("-e %s" % target, postconfig=postconfig).output
|
||||||
else:
|
else:
|
||||||
return runCmd("bitbake -e").output
|
return bitbake("-e", postconfig=postconfig).output
|
||||||
|
|
||||||
def get_bb_var(var, target=None):
|
def get_bb_var(var, target=None, postconfig=None):
|
||||||
val = None
|
val = None
|
||||||
bbenv = get_bb_env(target)
|
bbenv = get_bb_env(target, postconfig=postconfig)
|
||||||
for line in bbenv.splitlines():
|
for line in bbenv.splitlines():
|
||||||
if line.startswith(var + "="):
|
if line.startswith(var + "="):
|
||||||
val = line.split('=')[1]
|
val = line.split('=')[1]
|
||||||
|
|||||||
Reference in New Issue
Block a user