Module CPM.Repository

This module implements functionality surrounding the package repository. The repository is the index of all packages known to the package manager. It contains metadata about the packages, such as their names, versions dependencies and where they can be acquired. The repository does not contain the actual packages. For a list of packages that are currently installed locally, you can consult the database.

Summary of exported operations:

emptyRepository :: Repository  Deterministic 
Creates an empty repository.
allPackages :: Repository -> [Package]  Deterministic 
Get all packages in the central package index.
pkgsToRepository :: [Package] -> Repository  Deterministic 
Construct a repository from a list of packages.
findAllVersions :: Repository -> String -> Bool -> [Package]  Deterministic 
Finds all versions of a package known to the repository.
searchPackages :: Repository -> Bool -> Bool -> String -> [[Package]]  Deterministic 
Search the names and synopses of all compiler-compatbile packages in the repository for a particular term.
listPackages :: Repository -> [[Package]]  Deterministic 
Get all packages in the repository and group them by versions (newest first).
findLatestVersion :: Config -> Repository -> String -> Bool -> Maybe Package  Deterministic 
Finds the latest compiler-compatbile version of a package.
findVersion :: Repository -> String -> (Int,Int,Int,Maybe String) -> Maybe Package  Deterministic 
Finds a specific version of a package.
warnIfRepositoryOld :: Config -> ErrorLogger ()  Deterministic 
Prints a warning if the repository index is older than 10 days.
useUpdateHelp :: String  Deterministic 
readRepositoryFrom :: String -> ErrorLogger Repository  Deterministic 
Reads all package specifications from a repository.
repositoryCacheFilePrefix :: Config -> String  Deterministic 
The prefix of all file names implementing the repository cache.
cleanRepositoryCache :: Config -> ErrorLogger ()  Deterministic 
Cleans the repository cache.
readPackageFromRepository :: Config -> Package -> ErrorLogger Package  Deterministic 
Reads a given package from the default repository directory.

Exported datatypes:


Repository

Abstract data type of a repository.

Constructors:


Exported operations:

emptyRepository :: Repository  Deterministic 

Creates an empty repository.

Further infos:
  • solution complete, i.e., able to compute all solutions

allPackages :: Repository -> [Package]  Deterministic 

Get all packages in the central package index.

Further infos:
  • solution complete, i.e., able to compute all solutions

pkgsToRepository :: [Package] -> Repository  Deterministic 

Construct a repository from a list of packages.

Further infos:
  • solution complete, i.e., able to compute all solutions

findAllVersions :: Repository -> String -> Bool -> [Package]  Deterministic 

Finds all versions of a package known to the repository. Returns the packages sorted from newest to oldest.

Example call:
(findAllVersions r p pre)
Parameters:
  • r : the repository
  • p : the name of the package to search for
  • pre : should pre-release versions be included?

searchPackages :: Repository -> Bool -> Bool -> String -> [[Package]]  Deterministic 

Search the names and synopses of all compiler-compatbile packages in the repository for a particular term. Lower/upercase is ignored for the search. Returns all matching versions (newest first) of each package.

Example call:
(searchPackages repo searchmod searchexec searchterm)
Parameters:
  • repo : the repository
  • searchmod : search for some module?
  • searchexec : search for some executable?
  • searchterm : the term to search for

listPackages :: Repository -> [[Package]]  Deterministic 

Get all packages in the repository and group them by versions (newest first).

Example call:
(listPackages cfg repo)
Parameters:
  • cfg : the current CPM configuration
  • repo : the repository

findLatestVersion :: Config -> Repository -> String -> Bool -> Maybe Package  Deterministic 

Finds the latest compiler-compatbile version of a package.

Example call:
(findLatestVersion cfg repo p pre)
Parameters:
  • cfg : the current CPM configuration
  • repo : the central package index
  • p : the package to search for
  • pre : include pre-release versions

findVersion :: Repository -> String -> (Int,Int,Int,Maybe String) -> Maybe Package  Deterministic 

Finds a specific version of a package.

warnIfRepositoryOld :: Config -> ErrorLogger ()  Deterministic 

Prints a warning if the repository index is older than 10 days. Abort with an error message if the repository index is not initialized (e.g., by the command cypm update).

useUpdateHelp :: String  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

readRepositoryFrom :: String -> ErrorLogger Repository  Deterministic 

Reads all package specifications from a repository. If some errors occur, show them and terminate with error exit status.

Example call:
(readRepositoryFrom path)
Parameters:
  • path : the location of the repository
Returns:
repository

repositoryCacheFilePrefix :: Config -> String  Deterministic 

The prefix of all file names implementing the repository cache.

cleanRepositoryCache :: Config -> ErrorLogger ()  Deterministic 

Cleans the repository cache.

readPackageFromRepository :: Config -> Package -> ErrorLogger Package  Deterministic 

Reads a given package from the default repository directory. This is useful to obtain the complete package specification from a possibly incomplete package specification.