From a6448371b87f754def669adfdc01b07d18003405 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Mon, 5 Sep 2016 21:32:56 +0100 Subject: runqemu: assume artefacts are relative to *.qemuboot.conf When runqemu is started with a *.qemuboot.conf arg assume that image artefacts are relative to that file, rather than in whatever directory the DEPLOY_DIR_IMAGE variable in the conf file points to. Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie --- scripts/runqemu | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/runqemu b/scripts/runqemu index 7b0bcb24ee..5b719d5ac7 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -143,6 +143,7 @@ class BaseConfig(object): self.nfs_server = '' self.rootfs = '' self.qemuboot = '' + self.qbconfload = False self.kernel = '' self.kernel_cmdline = '' self.kernel_cmdline_script = '' @@ -239,6 +240,7 @@ class BaseConfig(object): """ if p.endswith('.qemuboot.conf'): self.qemuboot = p + self.qbconfload = True elif re.search('\.bin$', p) or re.search('bzImage', p) or \ re.search('zImage', p) or re.search('vmlinux', p) or \ re.search('fitImage', p) or re.search('uImage', p): @@ -250,7 +252,8 @@ class BaseConfig(object): if m: qb = '%s%s' % (re.sub('\.rootfs$', '', m.group(1)), '.qemuboot.conf') if os.path.exists(qb): - self.qemuboot = qb + self.qemuboot = qb + self.qbconfload = True else: logger.warn("%s doesn't exist" % qb) fst = m.group(2) @@ -533,6 +536,7 @@ class BaseConfig(object): qbs = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8') if qbs: self.qemuboot = qbs.split()[0] + self.qbconfload = True if not os.path.exists(self.qemuboot): raise Exception("Failed to find .qemuboot.conf!") @@ -545,6 +549,15 @@ class BaseConfig(object): k_upper = k.upper() self.set(k_upper, v) + # When we're started with a *.qemuboot.conf arg assume that image + # artefacts are relative to that file, rather than in whatever + # directory DEPLOY_DIR_IMAGE in the conf file points to. + if self.qbconfload: + imgdir = os.path.dirname(self.qemuboot) + if imgdir != self.get('DEPLOY_DIR_IMAGE'): + logger.info('Setting DEPLOY_DIR_IMAGE to folder containing %s (%s)' % (self.qemuboot, imgdir)) + self.set('DEPLOY_DIR_IMAGE', imgdir) + def print_config(self): logger.info('Continuing with the following parameters:\n') if not self.fstype in self.vmtypes: -- cgit 1.2.3-korg