Add reusable firmware info module
This commit is contained in:
18
c/firmware-info/tools/make_build_id.ps1
Normal file
18
c/firmware-info/tools/make_build_id.ps1
Normal file
@@ -0,0 +1,18 @@
|
||||
param(
|
||||
[string]$Repository = (Resolve-Path (Join-Path $PSScriptRoot '..\..\..\..\..')).Path,
|
||||
[string]$Output = (Join-Path $PSScriptRoot '..\generated\firmware_build_id.h')
|
||||
)
|
||||
|
||||
$id = 'NOGIT000'
|
||||
$hash = (& git -C $Repository rev-parse --short=8 HEAD 2>$null)
|
||||
if ($LASTEXITCODE -eq 0 -and $hash) {
|
||||
& git -C $Repository diff --quiet HEAD 2>$null
|
||||
$id = if ($LASTEXITCODE -eq 0) { $hash.Substring(0, 8) } else { $hash.Substring(0, 7) + '+' }
|
||||
}
|
||||
$directory = Split-Path -Parent $Output
|
||||
New-Item -ItemType Directory -Force -Path $directory | Out-Null
|
||||
$body = "#ifndef FIRMWARE_BUILD_ID_H`n#define FIRMWARE_BUILD_ID_H`n#define FIRMWARE_BUILD_ID `"$id`"`n#endif`n"
|
||||
if (!(Test-Path -LiteralPath $Output) -or ((Get-Content -Raw $Output) -ne $body)) {
|
||||
[IO.File]::WriteAllText($Output, $body, [Text.UTF8Encoding]::new($false))
|
||||
}
|
||||
Write-Host "[firmware-info] build-id: $id"
|
||||
Reference in New Issue
Block a user