Check for tagged release
set -e
set -o pipefail
+SKIP_VALIDATE=false
+
+function usage
+{
+ echo "Usage: $0 [--skip-validate]"
+ echo "Initialize Chipyard submodules and setup initial env.sh script."
+ echo ""
+ echo " --skip-validate Skip prompt checking for tagged release"
+}
+
+while test $# -gt 0
+do
+ case "$1" in
+ --skip-validate)
+ SKIP_VALIDATE=true;
+ ;;
+ -h | -H | --help)
+ usage
+ exit 1
+ ;;
+ *) echo "ERROR: bad argument $1"
+ usage
+ exit 2
+ ;;
+ esac
+ shift
+done
+
# Check that git version is at least 1.7.8
MYGIT=$(git --version)
MYGIT=${MYGIT#'git version '} # Strip prefix
@@ -17,6 +45,21 @@ if [ "$MINGIT" != "$(echo -e "$MINGIT\n$MYGIT" | sort -V | head -n1)" ]; then
false
fi
+# before doing anything verify that you are on a release branch/tag
+set +e
+tag=$(git describe --exact-match --tags)
+tag_ret_code=$?
+set -e
+if [ $tag_ret_code -ne 0 ]; then
+ if [ "$SKIP_VALIDATE" = false ]; then
+ read -p "WARNING: You are not on a tagged release of Chipyard. Type \"ok\" to continue: " validate
+ [[ $validate == [oO][kK] ]] || exit 3
+ echo "Setting up non-release Chipyard"
+ fi
+else
+ echo "Setting up Chipyard $tag"
+fi
+
# On macOS, use GNU readlink from 'coreutils' package in Homebrew/MacPorts
if [ "$(uname -s)" = "Darwin" ] ; then
READLINK=greadlink
