| Copyright | Duncan Coutts 2013 | 
|---|---|
| Maintainer | cabal-devel@haskell.org | 
| Portability | portable | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Distribution.Simple.Program.Find
Contents
Description
A somewhat extended notion of the normal program search path concept.
Usually when finding executables we just want to look in the usual places
 using the OS's usual method for doing so. In Haskell the normal OS-specific
 method is captured by findExecutable. On all common OSs that makes use of
 a PATH environment variable, (though on Windows it is not just the PATH).
However it is sometimes useful to be able to look in additional locations
 without having to change the process-global PATH environment variable.
 So we need an extension of the usual findExecutable that can look in
 additional locations, either before, after or instead of the normal OS
 locations.
Synopsis
- type ProgramSearchPath = [ProgramSearchPathEntry]
- data ProgramSearchPathEntry
- defaultProgramSearchPath :: ProgramSearchPath
- findProgramOnSearchPath :: Verbosity -> ProgramSearchPath -> FilePath -> IO (Maybe (FilePath, [FilePath]))
- programSearchPathAsPATHVar :: ProgramSearchPath -> IO String
- getSystemSearchPath :: IO [FilePath]
Program search path
type ProgramSearchPath = [ProgramSearchPathEntry] #
A search path to use when locating executables. This is analogous
 to the unix $PATH or win32 %PATH% but with the ability to use
 the system default method for finding executables (findExecutable which
 on unix is simply looking on the $PATH but on win32 is a bit more
 complicated).
The default to use is [ProgSearchPathDefault] but you can add extra dirs
 either before, after or instead of the default, e.g. here we add an extra
 dir to search after the usual ones.
['ProgramSearchPathDefault', 'ProgramSearchPathDir' dir]
data ProgramSearchPathEntry #
Constructors
| ProgramSearchPathDir FilePath | A specific dir | 
| ProgramSearchPathDefault | The system default | 
Instances
findProgramOnSearchPath :: Verbosity -> ProgramSearchPath -> FilePath -> IO (Maybe (FilePath, [FilePath])) #
programSearchPathAsPATHVar :: ProgramSearchPath -> IO String #
Interpret a ProgramSearchPath to construct a new $PATH env var.
 Note that this is close but not perfect because on Windows the search
 algorithm looks at more than just the %PATH%.
getSystemSearchPath :: IO [FilePath] #
Get the system search path. On Unix systems this is just the $PATH env
 var, but on windows it's a bit more complicated.