aboutsummaryrefslogtreecommitdiffstats
path: root/test/bootstrap.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/bootstrap.sh')
-rw-r--r--test/bootstrap.sh87
1 files changed, 87 insertions, 0 deletions
diff --git a/test/bootstrap.sh b/test/bootstrap.sh
new file mode 100644
index 0000000..831c13d
--- /dev/null
+++ b/test/bootstrap.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+set -o errexit
+set -o nounset
+IFS='
+'
+
+if test "${IS_TEST_CASE:-1}" -eq '1'
+then
+ DIR_TESTCASES="$(cd -- "$(dirname -- "$0")" && pwd -P)"
+ DIR_TEST="$(dirname "${DIR_TESTCASES}")"
+else
+ DIR_TEST="$(cd -- "$(dirname -- "$0")" && pwd -P)"
+ DIR_TESTCASES="${DIR_TEST}/tests"
+fi
+DIR_ROOT="$(dirname "${DIR_TEST}")"
+DIR_BIN="${DIR_ROOT}/bin"
+DIR_TEMP="${DIR_TEST}/temp"
+DIR_SOURCE="${DIR_TEMP}/source"
+DIR_DESTINATION="${DIR_TEMP}/destination"
+
+BIN_MAIN="${DIR_BIN}/incremental-git-filterbranch.sh"
+if test ! -f "${BIN_MAIN}"
+then
+ echo 'Failed to detect environment'>&2
+ exit 1
+fi
+
+alias git-source='git -C "${DIR_SOURCE}"'
+alias git-destination='git -C "${DIR_DESTINATION}"'
+
+initializeRepositories () {
+ rm -rf "${DIR_TEMP}"
+ mkdir "${DIR_TEMP}"
+
+ git init --quiet "${DIR_SOURCE}"
+ git-source config --local user.email 'email@example.com'
+ git-source config --local user.name 'John Doe'
+
+ echo 'test'>"${DIR_SOURCE}/in-root"
+ git-source add --all
+ git-source commit --quiet --message 'Commit #1'
+ git-source tag tag-01
+
+ mkdir "${DIR_SOURCE}/subdir"
+ echo 'test'>"${DIR_SOURCE}/subdir/subfile"
+ git-source add --all
+ git-source commit --quiet --message 'Commit #2'
+
+ git-source tag tag-02
+
+ echo 'test'>>"${DIR_SOURCE}/in-root"
+ git-source add --all
+ git-source commit --quiet --message 'Commit #3'
+
+ git-source tag tag-03
+
+ echo 'test'>>"${DIR_SOURCE}/in-root"
+ git-source add --all
+ git-source commit --quiet --message 'Commit #3'
+
+ git init --bare --quiet "${DIR_DESTINATION}"
+}
+
+getTagList () {
+ printf '%s\n' $(git -C "${1}" show-ref --tags | sed -E 's:^.*?refs/tags/::' || true)
+}
+
+itemInList () {
+ for itemInListItem in ${2}
+ do
+ if test "${1}" = "${itemInListItem}"
+ then
+ return 0
+ fi
+ done
+ return 1
+}
+
+itemNotInList () {
+ if itemInList "${1}" "${2}"
+ then
+ return 1
+ else
+ return 0
+ fi
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy