summaryrefslogtreecommitdiffstats
path: root/bin-wrappers
diff options
context:
space:
mode:
Diffstat (limited to 'bin-wrappers')
-rw-r--r--bin-wrappers/.gitignore9
-rw-r--r--bin-wrappers/meson.build28
-rwxr-xr-xbin-wrappers/wrap-for-bin.sh37
3 files changed, 74 insertions, 0 deletions
diff --git a/bin-wrappers/.gitignore b/bin-wrappers/.gitignore
new file mode 100644
index 0000000000..1c6c90458b
--- /dev/null
+++ b/bin-wrappers/.gitignore
@@ -0,0 +1,9 @@
+/git
+/git-cvsserver
+/git-receive-pack
+/git-shell
+/git-upload-archive
+/git-upload-pack
+/scalar
+/test-fake-ssh
+/test-tool
diff --git a/bin-wrappers/meson.build b/bin-wrappers/meson.build
new file mode 100644
index 0000000000..8a4e910c9b
--- /dev/null
+++ b/bin-wrappers/meson.build
@@ -0,0 +1,28 @@
+bin_wrappers_config = configuration_data()
+foreach key, value : {
+ 'BUILD_DIR': meson.project_build_root(),
+ 'MERGE_TOOLS_DIR': meson.project_source_root() / 'mergetools',
+ 'TEMPLATE_DIR': meson.project_build_root() / 'templates',
+ 'GIT_TEXTDOMAINDIR': meson.project_build_root() / 'po',
+ 'GITPERLLIB': meson.project_build_root() / 'perl/lib',
+}
+ # Paths need to be Unix-style without drive prefixes as they get added to the
+ # PATH variable. And given that drive prefixes contain a colon we'd otherwise
+ # end up with a broken PATH if we didn't convert them.
+ if cygpath.found()
+ value = run_command(cygpath, value, check: true).stdout().strip()
+ endif
+ bin_wrappers_config.set(key, value)
+endforeach
+
+foreach executable : bin_wrappers
+ executable_config = configuration_data()
+ executable_config.merge_from(bin_wrappers_config)
+ executable_config.set('PROG', executable.full_path())
+
+ configure_file(
+ input: 'wrap-for-bin.sh',
+ output: fs.stem(executable.full_path()),
+ configuration: executable_config,
+ )
+endforeach
diff --git a/bin-wrappers/wrap-for-bin.sh b/bin-wrappers/wrap-for-bin.sh
new file mode 100755
index 0000000000..4b658ffd2d
--- /dev/null
+++ b/bin-wrappers/wrap-for-bin.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# wrap-for-bin.sh: Template for git executable wrapper scripts
+# to run test suite against sandbox, but with only bindir-installed
+# executables in PATH. The Makefile copies this into various
+# files in bin-wrappers, substituting
+# @BUILD_DIR@, @TEMPLATE_DIR@ and @PROG@.
+
+GIT_EXEC_PATH='@BUILD_DIR@'
+if test -n "$NO_SET_GIT_TEMPLATE_DIR"
+then
+ unset GIT_TEMPLATE_DIR
+else
+ GIT_TEMPLATE_DIR='@TEMPLATE_DIR@'
+ export GIT_TEMPLATE_DIR
+fi
+MERGE_TOOLS_DIR='@MERGE_TOOLS_DIR@'
+GITPERLLIB='@GITPERLLIB@'"${GITPERLLIB:+:$GITPERLLIB}"
+GIT_TEXTDOMAINDIR='@GIT_TEXTDOMAINDIR@'
+PATH='@BUILD_DIR@/bin-wrappers:'"$PATH"
+
+export MERGE_TOOLS_DIR GIT_EXEC_PATH GITPERLLIB PATH GIT_TEXTDOMAINDIR
+
+case "$GIT_DEBUGGER" in
+'')
+ exec "@PROG@" "$@"
+ ;;
+1)
+ unset GIT_DEBUGGER
+ exec gdb --args "@PROG@" "$@"
+ ;;
+*)
+ GIT_DEBUGGER_ARGS="$GIT_DEBUGGER"
+ unset GIT_DEBUGGER
+ exec ${GIT_DEBUGGER_ARGS} "@PROG@" "$@"
+ ;;
+esac