summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Thode <[email protected]>2018-10-17 14:06:05 -0500
committerBrian Behlendorf <[email protected]>2018-10-17 12:06:05 -0700
commit8d431940038c4a668abdac40b5853b269d49253e (patch)
treed39a51d1224022ec55a92f16686295dcc7fa731c
parent2e55034471413fb668d0d910b2c083610b386127 (diff)
Allow copy-builtin to work with modified sources
`scripts/make_gitrev.sh` had 'set -e' so if any command failed it would fail and cause copy-builtin to fail (copy-builtin also has `set -e`. This commit also simplifies scripts/make_gitrev.sh to always write a file by using a cleanup function. It also simplifies other areas of the script as well (making it much shorter). Reviewed-by: John Kennedy <[email protected]> Reviewed-by: George Melikov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Matthew Thode <[email protected]> Closes #8022 Closes #8025
-rwxr-xr-xcopy-builtin2
-rwxr-xr-xscripts/make_gitrev.sh37
2 files changed, 14 insertions, 25 deletions
diff --git a/copy-builtin b/copy-builtin
index eaffbd2d2..1dcfcb961 100755
--- a/copy-builtin
+++ b/copy-builtin
@@ -30,7 +30,7 @@ then
fi
make clean || true
-scripts/make_gitrev.sh
+scripts/make_gitrev.sh || true
rm -rf "$KERNEL_DIR/include/zfs" "$KERNEL_DIR/fs/zfs"
cp --recursive include "$KERNEL_DIR/include/zfs"
diff --git a/scripts/make_gitrev.sh b/scripts/make_gitrev.sh
index 04be09595..757f00fbc 100755
--- a/scripts/make_gitrev.sh
+++ b/scripts/make_gitrev.sh
@@ -15,9 +15,8 @@
# CDDL HEADER END
#
-#
# Copyright (c) 2018 by Delphix. All rights reserved.
-#
+# Copyright (c) 2018 by Matthew Thode. All rights reserved.
#
# Generate zfs_gitrev.h. Note that we need to do this for every
@@ -26,29 +25,19 @@
# `configure` is run.
#
-BASE_DIR=$(dirname "$0")
-
-file=${BASE_DIR}/../include/zfs_gitrev.h
+set -e -u
-#
-# Set default file contents in case we bail.
-#
-rm -f "$file"
-# shellcheck disable=SC2039
-/bin/echo -e "#define\tZFS_META_GITREV \"unknown\"" >>"$file"
+cleanup() {
+ ZFS_GIT_REV=${ZFS_GIT_REV:-"unknown"}
+ cat << EOF > "$(dirname "$0")"/../include/zfs_gitrev.h
+#define ZFS_META_GITREV "${ZFS_GIT_REV}"
+EOF
+}
+trap cleanup EXIT
-#
# Check if git is installed and we are in a git repo.
-#
-git rev-parse --git-dir > /dev/null 2>&1 || exit
-
-#
+git rev-parse --git-dir > /dev/null 2>&1
# 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"
+git diff-index --quiet HEAD
+# Get the git current git revision
+ZFS_GIT_REV=$(git describe 2>/dev/null)