standalone linux app nearly ready
also made several fixes that apply to the OSX app
This commit is contained in:
		
					parent
					
						
							
								f0d75cd928
							
						
					
				
			
			
				commit
				
					
						e88e3ba85b
					
				
			
		
					 11 changed files with 187 additions and 20 deletions
				
			
		| 
						 | 
					@ -5,6 +5,8 @@
 | 
				
			||||||
 - Licensed under the GNU GPL version 3 or higher.
 | 
					 - Licensed under the GNU GPL version 3 or higher.
 | 
				
			||||||
 -}
 | 
					 -}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{-# LANGUAGE CPP #-}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Assistant.Install where
 | 
					module Assistant.Install where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Assistant.Common
 | 
					import Assistant.Common
 | 
				
			||||||
| 
						 | 
					@ -12,14 +14,15 @@ import Assistant.Install.AutoStart
 | 
				
			||||||
import Assistant.Ssh
 | 
					import Assistant.Ssh
 | 
				
			||||||
import Locations.UserConfig
 | 
					import Locations.UserConfig
 | 
				
			||||||
import Utility.FileMode
 | 
					import Utility.FileMode
 | 
				
			||||||
 | 
					import Utility.FreeDesktop
 | 
				
			||||||
import Utility.OSX
 | 
					import Utility.OSX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import System.Posix.Env
 | 
					import System.Posix.Env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
standaloneOSXAppBase :: IO (Maybe FilePath)
 | 
					standaloneAppBase :: IO (Maybe FilePath)
 | 
				
			||||||
standaloneOSXAppBase = getEnv "GIT_ANNEX_OSX_APP_BASE"
 | 
					standaloneAppBase = getEnv "GIT_ANNEX_APP_BASE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{- The OSX git-annex.app does not have an installation process.
 | 
					{- The standalone app does not have an installation process.
 | 
				
			||||||
 - So when it's run, it needs to set up autostarting of the assistant
 | 
					 - So when it's run, it needs to set up autostarting of the assistant
 | 
				
			||||||
 - daemon, as well as writing the programFile, and putting a
 | 
					 - daemon, as well as writing the programFile, and putting a
 | 
				
			||||||
 - git-annex-shell wrapper into ~/.ssh
 | 
					 - git-annex-shell wrapper into ~/.ssh
 | 
				
			||||||
| 
						 | 
					@ -28,16 +31,21 @@ standaloneOSXAppBase = getEnv "GIT_ANNEX_OSX_APP_BASE"
 | 
				
			||||||
 - it around, the paths this sets up won't break.
 | 
					 - it around, the paths this sets up won't break.
 | 
				
			||||||
 -}
 | 
					 -}
 | 
				
			||||||
ensureInstalled :: IO ()
 | 
					ensureInstalled :: IO ()
 | 
				
			||||||
ensureInstalled = go =<< standaloneOSXAppBase
 | 
					ensureInstalled = go =<< standaloneAppBase
 | 
				
			||||||
	where
 | 
						where
 | 
				
			||||||
		go Nothing = noop
 | 
							go Nothing = noop
 | 
				
			||||||
		go (Just base) = do
 | 
							go (Just base) = do
 | 
				
			||||||
			let program = base ++ "/bin/git-annex"
 | 
								let program = base ++ "runshell git-annex"
 | 
				
			||||||
			programfile <- programFile
 | 
								programfile <- programFile
 | 
				
			||||||
			createDirectoryIfMissing True (parentDir programfile)
 | 
								createDirectoryIfMissing True (parentDir programfile)
 | 
				
			||||||
			writeFile programfile program
 | 
								writeFile programfile program
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			autostartfile <- userAutoStart autoStartLabel
 | 
					#ifdef darwin_HOST_OS
 | 
				
			||||||
 | 
								autostartfile <- userAutoStart osxAutoStartLabel
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
								autostartfile <- autoStartPath "git-annex"
 | 
				
			||||||
 | 
									<$> userConfigDir
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
			installAutoStart program autostartfile
 | 
								installAutoStart program autostartfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			{- This shim is only updated if it doesn't
 | 
								{- This shim is only updated if it doesn't
 | 
				
			||||||
| 
						 | 
					@ -52,7 +60,7 @@ ensureInstalled = go =<< standaloneOSXAppBase
 | 
				
			||||||
				, "exec", base </> "runshell" ++ 
 | 
									, "exec", base </> "runshell" ++ 
 | 
				
			||||||
				  " git-annex-shell -c \"$SSH_ORIGINAL_COMMAND\""
 | 
									  " git-annex-shell -c \"$SSH_ORIGINAL_COMMAND\""
 | 
				
			||||||
				]
 | 
									]
 | 
				
			||||||
			curr <- catchDefaultIO "" $ readFile shim
 | 
								curr <- catchDefaultIO "" $ readFileStrict shim
 | 
				
			||||||
			when (curr /= content) $ do
 | 
								when (curr /= content) $ do
 | 
				
			||||||
				createDirectoryIfMissing True (parentDir shim)
 | 
									createDirectoryIfMissing True (parentDir shim)
 | 
				
			||||||
				writeFile shim content
 | 
									writeFile shim content
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,23 +1,37 @@
 | 
				
			||||||
{- Assistant OSX autostart file installation
 | 
					{- Assistant autostart file installation
 | 
				
			||||||
 -
 | 
					 -
 | 
				
			||||||
 - Copyright 2012 Joey Hess <joey@kitenet.net>
 | 
					 - Copyright 2012 Joey Hess <joey@kitenet.net>
 | 
				
			||||||
 -
 | 
					 -
 | 
				
			||||||
 - Licensed under the GNU GPL version 3 or higher.
 | 
					 - Licensed under the GNU GPL version 3 or higher.
 | 
				
			||||||
 -}
 | 
					 -}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{-# LANGUAGE CPP #-}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Assistant.Install.AutoStart where
 | 
					module Assistant.Install.AutoStart where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Utility.FreeDesktop
 | 
				
			||||||
import Utility.OSX
 | 
					import Utility.OSX
 | 
				
			||||||
import Utility.Path
 | 
					import Utility.Path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import System.Directory
 | 
					import System.Directory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{- Installs an autostart plist file for OSX. -}
 | 
					 | 
				
			||||||
installAutoStart :: FilePath -> FilePath -> IO ()
 | 
					installAutoStart :: FilePath -> FilePath -> IO ()
 | 
				
			||||||
installAutoStart command file = do
 | 
					installAutoStart command file = do
 | 
				
			||||||
 | 
					#ifdef darwin_HOST_OS
 | 
				
			||||||
	createDirectoryIfMissing True (parentDir file)
 | 
						createDirectoryIfMissing True (parentDir file)
 | 
				
			||||||
	writeFile file $ genOSXAutoStartFile autoStartLabel command
 | 
						writeFile file $ genOSXAutoStartFile osxAutoStartLabel command
 | 
				
			||||||
		["assistant", "--autostart"]
 | 
							["assistant", "--autostart"]
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						writeDesktopMenuFile (fdoAutostart command) file
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
autoStartLabel :: String
 | 
					osxAutoStartLabel :: String
 | 
				
			||||||
autoStartLabel = "com.branchable.git-annex.assistant"
 | 
					osxAutoStartLabel = "com.branchable.git-annex.assistant"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fdoAutostart :: FilePath -> DesktopEntry
 | 
				
			||||||
 | 
					fdoAutostart command = genDesktopEntry
 | 
				
			||||||
 | 
						"Git Annex Assistant"
 | 
				
			||||||
 | 
						"Autostart"
 | 
				
			||||||
 | 
						False
 | 
				
			||||||
 | 
						(command ++ " assistant --autostart")
 | 
				
			||||||
 | 
						[]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@ import Assistant.Common
 | 
				
			||||||
import Assistant.WebApp
 | 
					import Assistant.WebApp
 | 
				
			||||||
import Assistant.WebApp.Types
 | 
					import Assistant.WebApp.Types
 | 
				
			||||||
import Assistant.WebApp.SideBar
 | 
					import Assistant.WebApp.SideBar
 | 
				
			||||||
import Assistant.Install (standaloneOSXAppBase)
 | 
					import Assistant.Install (standaloneAppBase)
 | 
				
			||||||
import Utility.Yesod
 | 
					import Utility.Yesod
 | 
				
			||||||
import Build.SysConfig (packageversion)
 | 
					import Build.SysConfig (packageversion)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ import Yesod
 | 
				
			||||||
 - be read in and displayed. -}
 | 
					 - be read in and displayed. -}
 | 
				
			||||||
licenseFile :: IO (Maybe FilePath)
 | 
					licenseFile :: IO (Maybe FilePath)
 | 
				
			||||||
licenseFile = do
 | 
					licenseFile = do
 | 
				
			||||||
	base <- standaloneOSXAppBase
 | 
						base <- standaloneAppBase
 | 
				
			||||||
	return $ (</> "LICENSE") <$> base
 | 
						return $ (</> "LICENSE") <$> base
 | 
				
			||||||
 | 
					
 | 
				
			||||||
getAboutR :: Handler RepHtml
 | 
					getAboutR :: Handler RepHtml
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ getLicenseR = do
 | 
				
			||||||
	case v of
 | 
						case v of
 | 
				
			||||||
		Nothing -> redirect AboutR
 | 
							Nothing -> redirect AboutR
 | 
				
			||||||
		Just f -> bootstrap (Just About) $ do
 | 
							Just f -> bootstrap (Just About) $ do
 | 
				
			||||||
			sideBarDisplay
 | 
								-- no sidebar, just pages of legalese..
 | 
				
			||||||
			setTitle "License"
 | 
								setTitle "License"
 | 
				
			||||||
			license <- liftIO $ readFile f
 | 
								license <- liftIO $ readFile f
 | 
				
			||||||
			$(widgetFile "documentation/license")
 | 
								$(widgetFile "documentation/license")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,7 +64,7 @@ writeFDODesktop command = do
 | 
				
			||||||
		=<< inDestDir (desktopMenuFilePath "git-annex" datadir)
 | 
							=<< inDestDir (desktopMenuFilePath "git-annex" datadir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	configdir <- ifM systemwideInstall ( return systemConfigDir, userConfigDir )
 | 
						configdir <- ifM systemwideInstall ( return systemConfigDir, userConfigDir )
 | 
				
			||||||
	writeDesktopMenuFile (autostart command) 
 | 
						installAutoStart command 
 | 
				
			||||||
		=<< inDestDir (autoStartPath "git-annex" configdir)
 | 
							=<< inDestDir (autoStartPath "git-annex" configdir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
writeOSXDesktop :: FilePath -> IO ()
 | 
					writeOSXDesktop :: FilePath -> IO ()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
					@ -148,7 +148,7 @@ linuxstandalone: $(bins)
 | 
				
			||||||
	cp git-annex "$(LINUXSTANDALONE_DEST)/bin/"
 | 
						cp git-annex "$(LINUXSTANDALONE_DEST)/bin/"
 | 
				
			||||||
	strip "$(LINUXSTANDALONE_DEST)/bin/git-annex"
 | 
						strip "$(LINUXSTANDALONE_DEST)/bin/git-annex"
 | 
				
			||||||
	ln -sf git-annex "$(LINUXSTANDALONE_DEST)/bin/git-annex-shell"
 | 
						ln -sf git-annex "$(LINUXSTANDALONE_DEST)/bin/git-annex-shell"
 | 
				
			||||||
	zcat doc/license/git-annex-osx.app-licences.gz > $(LINUXSTANDALONE_DEST)/LICENSE
 | 
						zcat standalone/licences.gz > $(LINUXSTANDALONE_DEST)/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for bin in $(THIRDPARTY_BINS); do \
 | 
						for bin in $(THIRDPARTY_BINS); do \
 | 
				
			||||||
		cp "$$(which "$$bin")" "$(LINUXSTANDALONE_DEST)/bin/" || echo "$$bin not available; skipping"; \
 | 
							cp "$$(which "$$bin")" "$(LINUXSTANDALONE_DEST)/bin/" || echo "$$bin not available; skipping"; \
 | 
				
			||||||
| 
						 | 
					@ -184,7 +184,7 @@ osxapp: $(bins)
 | 
				
			||||||
	cp git-annex "$(OSXAPP_BASE)/bin/"
 | 
						cp git-annex "$(OSXAPP_BASE)/bin/"
 | 
				
			||||||
	strip "$(OSXAPP_BASE)/bin/git-annex"
 | 
						strip "$(OSXAPP_BASE)/bin/git-annex"
 | 
				
			||||||
	ln -sf git-annex "$(OSXAPP_BASE)/bin/git-annex-shell"
 | 
						ln -sf git-annex "$(OSXAPP_BASE)/bin/git-annex-shell"
 | 
				
			||||||
	gzcat doc/license/git-annex-osx.app-licences.gz > $(OSXAPP_BASE)/LICENSE
 | 
						gzcat standalone/licences.gz > $(OSXAPP_BASE)/LICENSE
 | 
				
			||||||
	cp $(OSXAPP_BASE)/LICENSE $(GIT_ANNEX_TMP_BUILD_DIR)/build-dmg/LICENSE.txt
 | 
						cp $(OSXAPP_BASE)/LICENSE $(GIT_ANNEX_TMP_BUILD_DIR)/build-dmg/LICENSE.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for bin in $(THIRDPARTY_BINS); do \
 | 
						for bin in $(THIRDPARTY_BINS); do \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										23
									
								
								standalone/linux/README
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								standalone/linux/README
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					To start the git-annex webapp, run the git-annex-webapp script in this
 | 
				
			||||||
 | 
					directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To enter an environment with git-annex in PATH, use runshell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This should work on any Linux system of the appropriate architecture.
 | 
				
			||||||
 | 
					More or less. There are no external dependencies, except for glibc.
 | 
				
			||||||
 | 
					Any recent-ish version of glibc should work (2.13 is ok; so is 2.11).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					How it works: This directory contains a lot of libraries and programs
 | 
				
			||||||
 | 
					that git-annex needs. But it's not a chroot. Instead, runshell sets
 | 
				
			||||||
 | 
					PATH and LD_LIBRARY_PATH to point to the stuff in this directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The glibc libs are not included. Instead, it runs with the host system's
 | 
				
			||||||
 | 
					glibc. We trust that glibc's excellent backwards and forward compatability
 | 
				
			||||||
 | 
					is good enough to run binaries that were linked for a newer or older
 | 
				
			||||||
 | 
					version. Of course, this could fail. Particularly if the binaries try to
 | 
				
			||||||
 | 
					use some new glibc feature. But hopefully not.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Why not bundle glibc too? I've not gotten it to work! The host system's 
 | 
				
			||||||
 | 
					ld-linux.so will be used for sure, as that's hardcoded into the binaries.
 | 
				
			||||||
 | 
					When I tried including libraries from glibc in here, everything segfaulted.
 | 
				
			||||||
							
								
								
									
										25
									
								
								standalone/linux/git-annex-webapp
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								standalone/linux/git-annex-webapp
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -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 "$@"
 | 
				
			||||||
							
								
								
									
										43
									
								
								standalone/linux/glibc-libs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								standalone/linux/glibc-libs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					libanl-.*.so
 | 
				
			||||||
 | 
					libutil-.*.so
 | 
				
			||||||
 | 
					libnss_hesiod-.*.so
 | 
				
			||||||
 | 
					libcrypt-.*.so
 | 
				
			||||||
 | 
					libnss_compat-.*.so
 | 
				
			||||||
 | 
					libm-.*.so
 | 
				
			||||||
 | 
					libr.so
 | 
				
			||||||
 | 
					libpcprofile.so
 | 
				
			||||||
 | 
					libnss_nis-.*.so
 | 
				
			||||||
 | 
					libSegFault.so
 | 
				
			||||||
 | 
					libpthread-.*.so
 | 
				
			||||||
 | 
					librt-.*.so
 | 
				
			||||||
 | 
					libnss_dns-.*.so
 | 
				
			||||||
 | 
					libdl-.*.so
 | 
				
			||||||
 | 
					libBrokenLocale-.*.so
 | 
				
			||||||
 | 
					libnss_nisplus-.*.so
 | 
				
			||||||
 | 
					libthread_db-1.0.so
 | 
				
			||||||
 | 
					libmemusage.so
 | 
				
			||||||
 | 
					libcidn-.*.so
 | 
				
			||||||
 | 
					libnss_files-.*.so
 | 
				
			||||||
 | 
					libnsl-.*.so
 | 
				
			||||||
 | 
					libc-.*.so
 | 
				
			||||||
 | 
					ld-.*.so
 | 
				
			||||||
 | 
					libnss_nis.so
 | 
				
			||||||
 | 
					libthread_db.so
 | 
				
			||||||
 | 
					libanl.so
 | 
				
			||||||
 | 
					libr.so
 | 
				
			||||||
 | 
					libnss_compat.so
 | 
				
			||||||
 | 
					libm.so
 | 
				
			||||||
 | 
					libnss_dns.so
 | 
				
			||||||
 | 
					libpthread.so
 | 
				
			||||||
 | 
					libc.so
 | 
				
			||||||
 | 
					librt.so
 | 
				
			||||||
 | 
					libcidn.so
 | 
				
			||||||
 | 
					libnss_nisplus.so
 | 
				
			||||||
 | 
					libnsl.so
 | 
				
			||||||
 | 
					libutil.so
 | 
				
			||||||
 | 
					libBrokenLocale.so
 | 
				
			||||||
 | 
					ld-linux.so
 | 
				
			||||||
 | 
					libnss_files.so
 | 
				
			||||||
 | 
					libdl.so
 | 
				
			||||||
 | 
					libnss_hesiod.so
 | 
				
			||||||
 | 
					libcrypt.so
 | 
				
			||||||
							
								
								
									
										48
									
								
								standalone/linux/runshell
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								standalone/linux/runshell
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					#!/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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for lib in $(cat $base/libdirs); do
 | 
				
			||||||
 | 
						LD_LIBRARY_PATH="$base/$lib:$LD_LIBRARY_PATH"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					export LD_LIBRARY_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GIT_EXEC_PATH=$base/git-core
 | 
				
			||||||
 | 
					export GIT_EXEC_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" ]; then
 | 
				
			||||||
 | 
						cmd="$1"
 | 
				
			||||||
 | 
						shift 1
 | 
				
			||||||
 | 
						exec "$cmd" "$@"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						$SHELL
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
| 
						 | 
					@ -9,11 +9,17 @@ if [ ! -e "$base/runshell" ]; then
 | 
				
			||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
fi
 | 
					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
 | 
					# If this is a standalone app, set a variable that git-annex can use to
 | 
				
			||||||
# install itself.
 | 
					# install itself.
 | 
				
			||||||
if [ -e "$base/bin/git-annex" ]; then
 | 
					if [ -e "$base/bin/git-annex" ]; then
 | 
				
			||||||
	GIT_ANNEX_OSX_APP_BASE="$base"
 | 
						GIT_ANNEX_APP_BASE="$base"
 | 
				
			||||||
	export GIT_ANNEX_OSX_APP_BASE
 | 
						export GIT_ANNEX_APP_BASE
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"$base/runshell" git-annex webapp "$@"
 | 
					"$base/runshell" git-annex webapp "$@"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue