diff options
Diffstat (limited to 'src/build/tools/addimgid')
-rwxr-xr-x | src/build/tools/addimgid | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/build/tools/addimgid b/src/build/tools/addimgid new file mode 100755 index 000000000..ab2bdd04a --- /dev/null +++ b/src/build/tools/addimgid @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use strict; + +my $imageIdSym = "hbi_ImageId"; + +my $img = shift; +my $src = shift; + +my $imgBase = $img; +$imgBase =~ s/.*\///; + +my $address = hex `ppc64-mcp6-nm $src -C | grep $imageIdSym | colrm 17`; +my $imageId = `git describe --dirty || echo Unknown-Image \`git rev-parse --short HEAD\``; + +chomp $imageId; +$imageId = $imageId."/".$imgBase; + +if (($imageId =~ m/Unknown-Image/) || # Couldn't find git describe tag. + ($imageId =~ m/dirty/) || # Find 'dirty' commit. + ($imageId =~ m/^.{15}-[1-9]+/)) # Found commits after a tag. +{ + $imageId = $imageId."/".$ENV{"USER"}; +} + +system("echo -n $imageId | dd of=$img conv=notrunc bs=1 seek=$address count=127"); +exit $? |