53 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| # Runs a shell command (or interactive shell) using the binaries and
 | |
| # libraries bundled with this app.
 | |
| 
 | |
| set -e
 | |
| 
 | |
| base="$(dirname $0)"
 | |
| 
 | |
| if [ ! -d "$base" ]; then
 | |
| 	echo "** cannot find base directory (I seem to be $0)" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| if [ ! -e "$base/bin/git-annex" ]; then
 | |
| 	echo "** base directory $base does not contain bin/git-annex" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| if [ ! -e "$base/bin/git" ]; then
 | |
| 	echo "** base directory $base does not contain bin/git" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| # Get absolute path to base, to avoid breakage when things change directories.
 | |
| orig="$(pwd)"
 | |
| cd "$base"
 | |
| base="$(pwd)"
 | |
| cd "$orig"
 | |
| 
 | |
| # Put our binaries first, to avoid issues with out of date or incompatable
 | |
| # system binaries.
 | |
| PATH=$base/bin:$PATH
 | |
| export PATH
 | |
| 
 | |
| # Using DYLD_FALLBACK_LIBRARY_PATH rather than DYLD_LIBRARY_PATH, so as
 | |
| # not to force binaries to link against possibly the wrong versions of
 | |
| # libraries found in the path. With DYLD_FALLBACK_LIBRARY_PATH, the
 | |
| # system's versions of libraries will be used when possible, and otherwise
 | |
| # it will fall back to using the libraries bundled with this app.
 | |
| for lib in "$(cat $base/libdirs)"; do
 | |
| 	DYLD_FALLBACK_LIBRARY_PATH="$base/$lib:$DYLD_FALLBACK_LIBRARY_PATH"
 | |
| done
 | |
| export DYLD_FALLBACK_LIBRARY_PATH
 | |
| 
 | |
| GIT_EXEC_PATH=$base/git-core
 | |
| export GIT_EXEC_PATH
 | |
| 
 | |
| if [ "$1" ]; then
 | |
| 	cmd="$1"
 | |
| 	shift 1
 | |
| 	"$cmd" "$@"
 | |
| else
 | |
| 	$SHELL
 | |
| fi
 | 
