| Portability | portable | 
|---|---|
| Maintainer | cabal-devel@haskell.org | 
| Safe Haskell | None | 
Distribution.Simple.Program.Types
Description
This provides an abstraction which deals with configuring and running
 programs. A Program is a static notion of a known program. A
 ConfiguredProgram is a Program that has been found on the current
 machine and is ready to be run (possibly with some user-supplied default
 args). Configuring a program involves finding its location and if necessary
 finding its version. There's reasonable default behavior for trying to find
 "foo" in PATH, being able to override its location, etc.
- data  Program  = Program {- programName :: String
- programFindLocation :: Verbosity -> IO (Maybe FilePath)
- programFindVersion :: Verbosity -> FilePath -> IO (Maybe Version)
- programPostConf :: Verbosity -> ConfiguredProgram -> IO [ProgArg]
 
- simpleProgram :: String -> Program
- data ConfiguredProgram = ConfiguredProgram {}
- programPath :: ConfiguredProgram -> FilePath
- type ProgArg = String
- data  ProgramLocation - = UserSpecified { }
- | FoundOnSystem { }
 
- simpleConfiguredProgram :: String -> ProgramLocation -> ConfiguredProgram
Program and functions for constructing them
data Program
Represents a program which can be configured.
Note: rather than constructing this directly, start with simpleProgram and
 override any extra fields.
Constructors
| Program | |
| Fields 
 | |
simpleProgram :: String -> Program
Make a simple named program.
By default we'll just search for it in the path and not try to find the version name. You can override these behaviours if necessary, eg:
 simpleProgram "foo" { programFindLocation = ... , programFindVersion ... }
Configured program and related functions
data ConfiguredProgram
Represents a program which has been configured and is thus ready to be run.
These are usually made by configuring a Program, but if you have to
 construct one directly then start with simpleConfiguredProgram and
 override any extra fields.
Constructors
| ConfiguredProgram | |
| Fields 
 | |
programPath :: ConfiguredProgram -> FilePath
The full path of a configured program.
data ProgramLocation
Where a program was found. Also tells us whether it's specifed by user or not. This includes not just the path, but the program as well.
Constructors
| UserSpecified | The user gave the path to this program, eg. --ghc-path=/usr/bin/ghc-6.6 | 
| Fields | |
| FoundOnSystem | The program was found automatically. | 
| Fields | |
Instances
simpleConfiguredProgram :: String -> ProgramLocation -> ConfiguredProgram
Make a simple ConfiguredProgram.
simpleConfiguredProgram "foo" (FoundOnSystem path)