move programPath out of Config.Files to Annex.Path

This works around horribleness in the Mavericks cpp, which falls over on
the #if when configure is running. Moving it avoids the file being built at
that point.

But it's also a location that makes sense..
This commit is contained in:
Joey Hess 2013-11-24 16:03:03 -04:00
parent b14d03ce7c
commit f913deab78
3 changed files with 35 additions and 23 deletions

34
Annex/Path.hs Normal file
View file

@ -0,0 +1,34 @@
{- git-annex program path
-
- Copyright 2013 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
{-# LANGUAGE CPP #-}
module Annex.Path where
import Common
import Config.Files
import System.Environment
{- A fully qualified path to the currently running git-annex program.
-
- getExecutablePath is available since ghc 7.4.2. On OSs it supports
- well, it returns the complete path to the program. But, on other OSs,
- it might return just the basename.
-}
programPath :: IO (Maybe FilePath)
programPath = do
#if MIN_VERSION_base(4,6,0)
exe <- getExecutablePath
p <- if isAbsolute exe
then return exe
else readProgramFile
#else
p <- readProgramFile
#endif
-- In case readProgramFile returned just the command name,
-- fall back to finding it in PATH.
searchPath p

View file

@ -27,6 +27,7 @@ import qualified Types.Key
import Assistant.TransferQueue import Assistant.TransferQueue
import Assistant.TransferSlots import Assistant.TransferSlots
import Remote (remoteFromUUID) import Remote (remoteFromUUID)
import Annex.Path
import Config.Files import Config.Files
import Utility.ThreadScheduler import Utility.ThreadScheduler
import Utility.Tmp import Utility.Tmp

View file

@ -5,14 +5,11 @@
- Licensed under the GNU GPL version 3 or higher. - Licensed under the GNU GPL version 3 or higher.
-} -}
{-# LANGUAGE CPP #-}
module Config.Files where module Config.Files where
import Common import Common
import Utility.Tmp import Utility.Tmp
import Utility.FreeDesktop import Utility.FreeDesktop
import System.Environment
{- ~/.config/git-annex/file -} {- ~/.config/git-annex/file -}
userConfigFile :: FilePath -> IO FilePath userConfigFile :: FilePath -> IO FilePath
@ -70,23 +67,3 @@ readProgramFile = do
) )
where where
cmd = "git-annex" cmd = "git-annex"
{- A fully qualified path to the currently running git-annex program.
-
- getExecutablePath is available since ghc 7.4.2. On OSs it supports
- well, it returns the complete path to the program. But, on other OSs,
- it might return just the basename.
-}
programPath :: IO (Maybe FilePath)
programPath = do
#if MIN_VERSION_base(4,6,0)
exe <- getExecutablePath
p <- if isAbsolute exe
then return exe
else readProgramFile
#else
p <- readProgramFile
#endif
-- In case readProgramFile returned just the command name,
-- fall back to finding it in PATH.
searchPath p