{- git-annex program path - - Copyright 2013 Joey Hess - - 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