From ff912832c0563cea8dc3135f1419bcf5139a0754 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 20 Mar 2013 14:01:05 -0400 Subject: [PATCH] reorganize osx app, so it can be put in PATH Move all the binaries and libraries under a bundle/ subdirectory; so when it's in PATH only git-annex, runshell, and git-annex-webapp will be available. --- Makefile | 2 +- debian/changelog | 2 ++ doc/install/OSX.mdwn | 10 +++++++--- standalone/osx/git-annex.app/Contents/MacOS/README | 9 +++++++++ .../osx/git-annex.app/Contents/MacOS/runshell | 14 ++++++++------ 5 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 standalone/osx/git-annex.app/Contents/MacOS/README diff --git a/Makefile b/Makefile index 966987587a..68d2aa3ff0 100644 --- a/Makefile +++ b/Makefile @@ -117,7 +117,7 @@ linuxstandalone: cd tmp && tar czf git-annex-standalone-$(shell dpkg --print-architecture).tar.gz git-annex.linux OSXAPP_DEST=tmp/build-dmg/git-annex.app -OSXAPP_BASE=$(OSXAPP_DEST)/Contents/MacOS +OSXAPP_BASE=$(OSXAPP_DEST)/Contents/MacOS/bundle osxapp: $(MAKE) git-annex diff --git a/debian/changelog b/debian/changelog index 0969e470d4..c1a2b8229f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -29,6 +29,8 @@ git-annex (4.20130315) UNRELEASED; urgency=low * get, copy, move: Display an error message when an identical transfer is already in progress, rather than failing with no indication why. * assistant: Several optimisations to file transfers. + * OSX app and standalone Linux tarball now both support being added to + PATH; no need to use runshell to start git-annex. -- Joey Hess Fri, 15 Mar 2013 00:10:07 -0400 diff --git a/doc/install/OSX.mdwn b/doc/install/OSX.mdwn index d87e81c3aa..a70074f38d 100644 --- a/doc/install/OSX.mdwn +++ b/doc/install/OSX.mdwn @@ -9,9 +9,13 @@ Be sure to select the build matching your version of OSX. If you want to run the [[git-annex_assistant|/assistant]], just install the app, look for the icon, and start it up. -To use git-annex at the command line, you need to run -`git-annex.app/Contents/MacOS/runshell`, which sets up your shell -to use programs bundled inside the app. +To use git-annex at the command line, you can add +`git-annex.app/Contents/MacOS` to your `PATH` + +Alternatively, from the command line you can run +`git-annex.app/Contents/MacOS/runshell`, which makes your shell use all the +programs bundled inside the app, including not just git-annex, but git, and +several more. Handy if you don't otherwise have git installed. This is still a work in progress. See [[/bugs/OSX_app_issues]] for problem reports. diff --git a/standalone/osx/git-annex.app/Contents/MacOS/README b/standalone/osx/git-annex.app/Contents/MacOS/README new file mode 100644 index 0000000000..c4bcea383c --- /dev/null +++ b/standalone/osx/git-annex.app/Contents/MacOS/README @@ -0,0 +1,9 @@ +This is a app bundle for git-annex. Most users are going to want to +just click on the icon to start up the git-annex webapp. + +To use git-annex at the command line, you can put the directory containing +this README into your PATH. + +Or, you can use the runshell script in this directory to start a shell +that is configured to use git-annex and the other utilities included in +this bundle, including git, gpg, rsync, ssh, etc. diff --git a/standalone/osx/git-annex.app/Contents/MacOS/runshell b/standalone/osx/git-annex.app/Contents/MacOS/runshell index 211f174fc5..6bf926bbe5 100755 --- a/standalone/osx/git-annex.app/Contents/MacOS/runshell +++ b/standalone/osx/git-annex.app/Contents/MacOS/runshell @@ -11,12 +11,14 @@ if [ ! -d "$base" ]; then exit 1 fi -if [ ! -e "$base/git-annex" ]; then - echo "** base directory $base does not contain git-annex" >&2 +bundle="$base/bundle" + +if [ ! -e "$bundle/git-annex" ]; then + echo "** bundle directory $bundle does not contain git-annex" >&2 exit 1 fi if [ ! -e "$base/git" ]; then - echo "** base directory $base does not contain git" >&2 + echo "** bundle directory $bundle does not contain git" >&2 exit 1 fi @@ -43,17 +45,17 @@ fi # system binaries. ORIG_PATH="$PATH" export ORIG_PATH -PATH=$base:$PATH +PATH=$bundle:$PATH export PATH ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH" export ORIG_GIT_EXEC_PATH -GIT_EXEC_PATH=$base +GIT_EXEC_PATH=$bundle export GIT_EXEC_PATH ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR" export ORIG_GIT_TEMPLATE_DIR -GIT_TEMPLATE_DIR="$base/templates" +GIT_TEMPLATE_DIR="$bundle/templates" export GIT_TEMPLATE_DIR # Indicate which variables were exported above.