diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rwxr-xr-x | scripts/make_gitrev.sh | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 28d618562..de0d4795d 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -14,6 +14,7 @@ EXTRA_DIST = \ dkms.postbuild \ enum-extract.pl \ kmodtool \ + make_gitrev.sh \ paxcheck.sh \ zfs2zol-patch.sed \ cstyle.pl diff --git a/scripts/make_gitrev.sh b/scripts/make_gitrev.sh new file mode 100755 index 000000000..04be09595 --- /dev/null +++ b/scripts/make_gitrev.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +# +# CDDL HEADER START +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# +# CDDL HEADER END +# + +# +# Copyright (c) 2018 by Delphix. All rights reserved. +# + +# +# Generate zfs_gitrev.h. Note that we need to do this for every +# invocation of `make`, including for incremental builds. Therefore we +# can't use a zfs_gitrev.h.in file which would be processed only when +# `configure` is run. +# + +BASE_DIR=$(dirname "$0") + +file=${BASE_DIR}/../include/zfs_gitrev.h + +# +# Set default file contents in case we bail. +# +rm -f "$file" +# shellcheck disable=SC2039 +/bin/echo -e "#define\tZFS_META_GITREV \"unknown\"" >>"$file" + +# +# Check if git is installed and we are in a git repo. +# +git rev-parse --git-dir > /dev/null 2>&1 || exit + +# +# Check if there are uncommitted changes +# +git diff-index --quiet HEAD || exit + +rev=$(git describe 2>/dev/null) || exit + +rm -f "$file" +# shellcheck disable=SC2039 +/bin/echo -e "#define\tZFS_META_GITREV \"${rev}\"" >>"$file" |