summaryrefslogtreecommitdiff
path: root/standalone/osx/git-annex.app/Contents/MacOS
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-10-01 13:38:19 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-10-01 13:38:19 -0400
commitaf6d5c5f2198858c08960b0948d30cb384b35687 (patch)
treebcf3a58b22d99b470f1b234fc99c0abfa468773d /standalone/osx/git-annex.app/Contents/MacOS
parent693c12e020148c3154919a939f5aed3eaa223471 (diff)
move
Diffstat (limited to 'standalone/osx/git-annex.app/Contents/MacOS')
-rwxr-xr-xstandalone/osx/git-annex.app/Contents/MacOS/git-annex-webapp25
-rwxr-xr-xstandalone/osx/git-annex.app/Contents/MacOS/runshell53
2 files changed, 78 insertions, 0 deletions
diff --git a/standalone/osx/git-annex.app/Contents/MacOS/git-annex-webapp b/standalone/osx/git-annex.app/Contents/MacOS/git-annex-webapp
new file mode 100755
index 000000000..61a9bbbeb
--- /dev/null
+++ b/standalone/osx/git-annex.app/Contents/MacOS/git-annex-webapp
@@ -0,0 +1,25 @@
+#!/bin/sh
+base="$(dirname $0)"
+if [ ! -d "$base" ]; then
+ echo "** cannot find base directory (I seem to be $0)" >&2
+ exit 1
+fi
+if [ ! -e "$base/runshell" ]; then
+ echo "** cannot find $base/runshell" >&2
+ exit 1
+fi
+
+# Get absolute path to base, to avoid breakage when things change directories.
+orig="$(pwd)"
+cd "$base"
+base="$(pwd)"
+cd "$orig"
+
+# If this is a standalone app, set a variable that git-annex can use to
+# install itself.
+if [ -e "$base/bin/git-annex" ]; then
+ GIT_ANNEX_APP_BASE="$base"
+ export GIT_ANNEX_APP_BASE
+fi
+
+"$base/runshell" git-annex webapp "$@"
diff --git a/standalone/osx/git-annex.app/Contents/MacOS/runshell b/standalone/osx/git-annex.app/Contents/MacOS/runshell
new file mode 100755
index 000000000..870c292eb
--- /dev/null
+++ b/standalone/osx/git-annex.app/Contents/MacOS/runshell
@@ -0,0 +1,53 @@
+#!/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
+ exec "$cmd" "$@"
+else
+ $SHELL
+fi