Blame version.sh

Packit Service d8d8ac
#!/bin/sh
Packit Service d8d8ac
#
Packit Service d8d8ac
# This scripts takes the major and minor release numbers and adds
Packit Service d8d8ac
# local version information from the git version control system.
Packit Service d8d8ac
# Adapted from scripts/setlocalversion in the Linux kernel sources.
Packit Service d8d8ac
#
Packit Service d8d8ac
major=2
Packit Service d8d8ac
minor=0
Packit Service d8d8ac
extra=
Packit Service d8d8ac
Packit Service d8d8ac
usage() {
Packit Service d8d8ac
	echo "Usage: $0 [srctree]" >&2
Packit Service d8d8ac
	exit 1
Packit Service d8d8ac
}
Packit Service d8d8ac
Packit Service d8d8ac
srctree=.
Packit Service d8d8ac
if test $# -gt 0; then
Packit Service d8d8ac
	srctree=$1
Packit Service d8d8ac
	shift
Packit Service d8d8ac
fi
Packit Service d8d8ac
if test $# -gt 0 -o ! -d "$srctree"; then
Packit Service d8d8ac
	usage
Packit Service d8d8ac
fi
Packit Service d8d8ac
Packit Service d8d8ac
scm_version()
Packit Service d8d8ac
{
Packit Service d8d8ac
	cd "$srctree"
Packit Service d8d8ac
Packit Service d8d8ac
	# Check for git and a git repo.
Packit Service d8d8ac
	if test -d .git && head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
Packit Service d8d8ac
Packit Service d8d8ac
		# If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
Packit Service d8d8ac
		# it, because this version is defined in the top level Makefile.
Packit Service d8d8ac
		if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
Packit Service d8d8ac
Packit Service d8d8ac
			# If we are past a tagged commit (like
Packit Service d8d8ac
			# "v2.6.30-rc5-302-g72357d5"), we pretty print it.
Packit Service d8d8ac
			if atag="`git describe 2>/dev/null`"; then
Packit Service d8d8ac
				echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
Packit Service d8d8ac
Packit Service d8d8ac
			# If we don't have a tag at all we print -g{commitish}.
Packit Service d8d8ac
			else
Packit Service d8d8ac
				printf '%s%s' -g $head
Packit Service d8d8ac
			fi
Packit Service d8d8ac
		fi
Packit Service d8d8ac
Packit Service d8d8ac
		# Update index only on r/w media
Packit Service d8d8ac
		[ -w . ] && git update-index --refresh --unmerged > /dev/null
Packit Service d8d8ac
Packit Service d8d8ac
		# Check for uncommitted changes
Packit Service d8d8ac
		if git diff-index --name-only HEAD | grep -qv "^scripts/package"; then
Packit Service d8d8ac
			printf '%s' -dirty
Packit Service d8d8ac
		fi
Packit Service d8d8ac
Packit Service d8d8ac
		# All done with git
Packit Service d8d8ac
		return
Packit Service d8d8ac
	fi
Packit Service d8d8ac
}
Packit Service d8d8ac
Packit Service d8d8ac
res="${major}.${minor}${extra}$(scm_version)"
Packit Service d8d8ac
echo "$res"