Expect the tests to be run somewhere in the build directory
hierarchy. Allow for source and build directories to be passed through
the environment.
---
 test/export-dirs.sh | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 test/export-dirs.sh

diff --git a/test/export-dirs.sh b/test/export-dirs.sh
new file mode 100644
index 000000000000..0578b1e50194
--- /dev/null
+++ b/test/export-dirs.sh
@@ -0,0 +1,32 @@
+# Source this script to set and export NOTMUCH_SRCDIR and
+# NOTMUCH_BUILDDIR.
+#
+# For this to work, always have current directory somewhere within the
+# build directory hierarchy, and run the script sourcing this script
+# using a path (relative or absolute) to the source directory.
+
+if [[ -z "${NOTMUCH_SRCDIR}" ]]; then
+       export NOTMUCH_SRCDIR="$(cd "$(dirname "$0")"/.. && pwd)"
+fi
+
+find_builddir()
+{
+       local dir="$1"
+
+       while [[ -n "$dir" ]] && [[ "$dir" != "/" ]]; do
+               if [[ -x "$dir/notmuch" ]] && [[ ! -d "$dir/notmuch" ]]; then
+                       echo "$dir"
+                       break
+               fi
+               dir="$(dirname "$dir")"
+       done
+}
+
+if [[ -z "${NOTMUCH_BUILDDIR}" ]]; then
+       export NOTMUCH_BUILDDIR="$(find_builddir "$(pwd)")"
+
+       if [[ -z "${NOTMUCH_BUILDDIR}" ]]; then
+               echo "Run tests in a subdir of built notmuch tree." >&2
+               exit 1
+       fi
+fi
-- 
2.11.0

_______________________________________________
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch

Reply via email to