ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/utils/dockerd/git-short-commit.sh b/external/subpack/utils/dockerd/git-short-commit.sh
new file mode 100755
index 0000000..ea8611b
--- /dev/null
+++ b/external/subpack/utils/dockerd/git-short-commit.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+#	USAGE: git-short-commit.sh <GIT_URL> <GIT_REF> <GIT_DIR>
+#
+
+set -e
+
+error() {
+	echo "ERROR: ${*}" >&2
+	exit 1
+}
+
+GIT_URL="${1}"
+if [ -z "${GIT_URL}" ]; then
+	error "Git URL not specified"
+fi
+
+GIT_REF="${2}"
+if [ -z "${GIT_REF}" ]; then
+	error "Git reference not specified"
+fi
+
+GIT_DIR="${3}"
+if [ -z "${GIT_DIR}" ]; then
+	error "Git clone directory not specified"
+fi
+
+clean_up() {
+	rm --force --recursive "${GIT_DIR}"
+}
+trap clean_up EXIT
+
+git init --quiet "${GIT_DIR}"
+(
+	cd "${GIT_DIR}"
+	for PREFIX in "" "https://" "http://" "git@"; do
+		echo "Trying remote '${PREFIX}${GIT_URL}'" >&2
+		git remote add origin "${PREFIX}${GIT_URL}"
+
+		if git fetch --depth 1 origin "${GIT_REF}"; then
+			git checkout --detach FETCH_HEAD --
+			git rev-parse --short HEAD
+			break
+		fi
+
+		git remote remove origin
+	done
+)