mirror of
https://github.com/git/git.git
synced 2024-11-23 01:46:13 +08:00
842436466a
This allows us to run git, when using the script from bin-wrappers, under other programs. A few examples for usage within testsuite scripts: debug git checkout master debug --debugger=nemiver git $ARGS debug -d "valgrind --tool-memcheck --track-origins=yes" git $ARGS Or, if someone has bin-wrappers/ in their $PATH and is executing git outside the testsuite: GIT_DEBUGGER="gdb --args" git $ARGS GIT_DEBUGGER=nemiver git $ARGS GIT_DEBUGGER="valgrind --tool=memcheck --track-origins=yes" git $ARGS There is also a handy shortcut of GIT_DEBUGGER=1 meaning the same as GIT_DEBUGGER="gdb --args" Original-patch-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
37 lines
946 B
Bash
37 lines
946 B
Bash
#!/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@@ and @@PROG@@.
|
|
|
|
GIT_EXEC_PATH='@@BUILD_DIR@@'
|
|
if test -n "$NO_SET_GIT_TEMPLATE_DIR"
|
|
then
|
|
unset GIT_TEMPLATE_DIR
|
|
else
|
|
GIT_TEMPLATE_DIR='@@BUILD_DIR@@/templates/blt'
|
|
export GIT_TEMPLATE_DIR
|
|
fi
|
|
GITPERLLIB='@@BUILD_DIR@@/perl/build/lib'"${GITPERLLIB:+:$GITPERLLIB}"
|
|
GIT_TEXTDOMAINDIR='@@BUILD_DIR@@/po/build/locale'
|
|
PATH='@@BUILD_DIR@@/bin-wrappers:'"$PATH"
|
|
|
|
export GIT_EXEC_PATH GITPERLLIB PATH GIT_TEXTDOMAINDIR
|
|
|
|
case "$GIT_DEBUGGER" in
|
|
'')
|
|
exec "${GIT_EXEC_PATH}/@@PROG@@" "$@"
|
|
;;
|
|
1)
|
|
unset GIT_DEBUGGER
|
|
exec gdb --args "${GIT_EXEC_PATH}/@@PROG@@" "$@"
|
|
;;
|
|
*)
|
|
GIT_DEBUGGER_ARGS="$GIT_DEBUGGER"
|
|
unset GIT_DEBUGGER
|
|
exec ${GIT_DEBUGGER_ARGS} "${GIT_EXEC_PATH}/@@PROG@@" "$@"
|
|
;;
|
|
esac
|