xref: /aosp_15_r20/external/vboot_reference/scripts/getversion.sh (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker#!/usr/bin/env bash
2*8617a60dSAndroid Build Coastguard Worker#
3*8617a60dSAndroid Build Coastguard Worker# Copyright 2014 The ChromiumOS Authors
4*8617a60dSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*8617a60dSAndroid Build Coastguard Worker# found in the LICENSE file.
6*8617a60dSAndroid Build Coastguard Worker#
7*8617a60dSAndroid Build Coastguard Worker# Generate version information
8*8617a60dSAndroid Build Coastguard Worker
9*8617a60dSAndroid Build Coastguard Workerif ghash=$(git rev-parse --short=12 --verify HEAD 2>/dev/null); then
10*8617a60dSAndroid Build Coastguard Worker  if gdesc=$(git describe --dirty --match='v*' 2>/dev/null); then
11*8617a60dSAndroid Build Coastguard Worker    IFS="-" fields=($gdesc)
12*8617a60dSAndroid Build Coastguard Worker    tag="${fields[0]}"
13*8617a60dSAndroid Build Coastguard Worker    IFS="." vernum=($tag)
14*8617a60dSAndroid Build Coastguard Worker    numcommits=$((${vernum[2]}+${fields[1]:-0}))
15*8617a60dSAndroid Build Coastguard Worker    ver_major="${vernum[0]}"
16*8617a60dSAndroid Build Coastguard Worker    ver_branch="${vernum[1]}"
17*8617a60dSAndroid Build Coastguard Worker  else
18*8617a60dSAndroid Build Coastguard Worker    numcommits=$(git rev-list HEAD | wc -l)
19*8617a60dSAndroid Build Coastguard Worker    ver_major="v0"
20*8617a60dSAndroid Build Coastguard Worker    ver_branch="0"
21*8617a60dSAndroid Build Coastguard Worker  fi
22*8617a60dSAndroid Build Coastguard Worker  # avoid putting the -dirty attribute if only the timestamp
23*8617a60dSAndroid Build Coastguard Worker  # changed
24*8617a60dSAndroid Build Coastguard Worker  dirty=$(sh -c "[ '$(git diff-index --name-only HEAD)' ] \
25*8617a60dSAndroid Build Coastguard Worker                && echo '-dirty'")
26*8617a60dSAndroid Build Coastguard Worker  ver="${ver_major}.${ver_branch}.${numcommits}-${ghash}${dirty}"
27*8617a60dSAndroid Build Coastguard Workerelse
28*8617a60dSAndroid Build Coastguard Worker  ver="unknown"
29*8617a60dSAndroid Build Coastguard Workerfi
30*8617a60dSAndroid Build Coastguard Worker
31*8617a60dSAndroid Build Coastguard Workerecho "const char futility_version[] = \"${ver}\";";
32