Bash程序  |  36行  |  982 B

#!/bin/bash
#
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Generate version information

if ghash=$(git rev-parse --short --verify HEAD 2>/dev/null); then
	if gdesc=$(git describe --dirty --match='v*' 2>/dev/null); then
		IFS="-" fields=($gdesc)
		tag="${fields[0]}"
		IFS="." vernum=($tag)
		numcommits=$((${vernum[2]}+${fields[1]:-0}))
		ver_major="${vernum[0]}"
		ver_branch="${vernum[1]}"
	else
		numcommits=$(git rev-list HEAD | wc -l)
		ver_major="v0"
		ver_branch="0"
	fi
	# avoid putting the -dirty attribute if only the timestamp
	# changed
	git status > /dev/null 2>&1

	dirty=$(sh -c "[ '$(git diff-index --name-only HEAD)' ] \
                && echo '-dirty'")
	ver="${ver_major}.${ver_branch}.${numcommits}-${ghash}${dirty}"
else
	ver="unknown"
fi

date=$(date '+%F %T')

echo "const char futility_version[] = \"${ver} ${date} ${USER}\";";