diff mbox series

[6/9] sstatesig/dump_sigs: allow setting output directory explicitly from command line option

Message ID 20240507114629.2591882-6-alex.kanavin@gmail.com
State New
Headers show
Series [1/9] bblayers/makesetup: raise exceptions when errors happen | expand

Commit Message

Alexander Kanavin May 7, 2024, 11:46 a.m. UTC
From: Alexander Kanavin <alex@linutronix.de>

The default (current directory) is unfortunately non-deterministic, as
the operation is performed from bitbake-server and not from bitbake
process directly. If the server was started in a different directory
it will write the files there, and not where bitbake command requesting
those files was started.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 meta/lib/oe/sstatesig.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 5dfd180e7f2..f885bb54f64 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -143,14 +143,19 @@  class SignatureGeneratorOEBasicHashMixIn(object):
         super().set_taskdata(data[3:])
 
     def dump_sigs(self, dataCache, options):
+        outdir = os.getcwd()
+        for o in options:
+            if o.startswith('outdir'):
+                outdir = o.split('=')[1]
+
         if 'lockedsigs' in options:
-            sigfile = os.getcwd() + "/locked-sigs.inc"
+            sigfile = outdir + "/locked-sigs.inc"
             bb.plain("Writing locked sigs to %s" % sigfile)
             self.dump_lockedsigs(sigfile)
         if 'unihash-cache-copy' in options:
-            cachefile = os.getcwd() + "/bb_unihashes.dat"
+            cachefile = outdir + "/bb_unihashes.dat"
             bb.plain("Writing unihash cache to %s" % cachefile)
-            bb.parse.siggen.copy_unitaskhashes(os.getcwd())
+            bb.parse.siggen.copy_unitaskhashes(outdir)
         return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)