diff options
author | Joey Hess <joey@kitenet.net> | 2013-11-24 16:03:03 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-11-24 16:03:03 -0400 |
commit | c22facd63b079f50e39926d172b66e3bf3835e7e (patch) | |
tree | 9fbb36bcee3edef556beb9aef01b9f5ecb1f94a8 /Annex | |
parent | 774b203d85bbbb4ac03f95d622fd9b6ef9fe54d5 (diff) |
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..
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Path.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Annex/Path.hs b/Annex/Path.hs new file mode 100644 index 000000000..a8c4907b2 --- /dev/null +++ b/Annex/Path.hs @@ -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 |