Module CPM.Config

This module defines the data type for CPM's configuration options, the default values for all options, and functions for reading the user's .cpmrc file and merging its contents into the default options.

Summary of exported operations:

defaultConfig :: Config   
CPM's default configuration values.
showConfiguration :: Config -> String   
Shows the configuration.
showCompilerVersion :: Config -> String   
Shows the compiler version in the configuration.
readConfigurationWith :: [(String,String)] -> IO (Either String Config)   
Reads the .cpmrc file from the user's home directory (if present) and merges its contents and some given default settings (first argument) into the configuration used by CPM.

Exported datatypes:


Config

Data type containing the main configuration of CPM.

Constructors:

  • Config :: String -> String -> String -> String -> String -> String -> String -> (String,Int,Int) -> String -> String -> Config

    Fields:

    • packageInstallDir :: String
    • binInstallDir :: String
    • repositoryDir :: String
    • appPackageDir :: String
    • packageIndexRepository :: String
    • homePackageDir :: String
    • curryExec :: String
    • compilerVersion :: (String,Int,Int)
    • compilerBaseVersion :: String
    • baseVersion :: String

Exported operations:

defaultConfig :: Config   

CPM's default configuration values. These are used if no .cpmrc file is found or a new value for the option is not specified in the .cpmrc file.

showConfiguration :: Config -> String   

Shows the configuration.

showCompilerVersion :: Config -> String   

Shows the compiler version in the configuration.

readConfigurationWith :: [(String,String)] -> IO (Either String Config)   

Reads the .cpmrc file from the user's home directory (if present) and merges its contents and some given default settings (first argument) into the configuration used by CPM. Resolves the $HOME variable after merging and creates any missing directories. May return an error using Left.