diff options
Diffstat (limited to 'Config/Files.hs')
-rw-r--r-- | Config/Files.hs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Config/Files.hs b/Config/Files.hs index 30ed0a3cf..285ae570b 100644 --- a/Config/Files.hs +++ b/Config/Files.hs @@ -5,11 +5,14 @@ - Licensed under the GNU GPL version 3 or higher. -} +{-# LANGUAGE CPP #-} + module Config.Files where import Common import Utility.Tmp import Utility.FreeDesktop +import System.Environment {- ~/.config/git-annex/file -} userConfigFile :: FilePath -> IO FilePath @@ -67,3 +70,23 @@ readProgramFile = do ) where 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 |