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