This module contains functions for accessing and modifying the global package cache.
data GlobalCache
The data type representing the global package cache.
An empty package cache.
allPackages
:: GlobalCache -> [Package]
Gets all package specifications from a cache.
findAllVersions
:: GlobalCache -> String -> Bool -> [Package]
Finds all versions of a package in the global package cache.
:: GlobalCache
|
the global package cache |
-> String
|
the name of the package |
-> Bool
|
include pre-release versions |
-> [Package]
|
findNewestVersion
:: GlobalCache -> String -> Maybe Package
Finds the newest version of a package.
findVersion
:: GlobalCache -> String -> (Int, Int, Int, Maybe String) -> Maybe Package
Finds a specific version of a package.
installedPackageDir
:: Config -> Package -> String
The directory of a package in the global package cache. Does not check whether the package is actually installed!
packageInstalled
:: Config -> Package -> IO Bool
Checks whether a package is installed in the global cache.
copyPackage
:: Config -> Package -> String -> ErrorLogger ()
Copy a package version to a directory.
acquireAndInstallPackage
:: Config -> Package -> ErrorLogger ()
Acquires a package, either from the global tar file repository or from the source specified in its specification, and installs it to the global package cache.
acquireAndInstallPackageFromSource
:: Config -> Package -> ErrorLogger ()
Acquires a package from the source specified in its specification and installs it to the global package cache.
installFromZip
:: Config -> String -> ErrorLogger ()
Installs a package from a ZIP file to the global package cache.
installMissingDependencies
:: Config -> GlobalCache -> [Package] -> ErrorLogger ()
Installs a package's missing dependencies.
missingPackages
:: GlobalCache -> [Package] -> [Package]
Filters a list of packages to the ones not installed in the global package cache.
checkoutPackage
:: Config -> Package -> String -> ErrorLogger ()
Checkout a package from the global package cache.
uninstallPackage
:: Config -> String -> (Int, Int, Int, Maybe String) -> ErrorLogger ()
Removes a package from the global package cache.
tryFindPackage
:: GlobalCache -> String -> (Int, Int, Int, Maybe String) -> ErrorLogger Package
Tries to find a package in the global package cache.
readGlobalCache
:: Config -> Repository -> ErrorLogger GlobalCache
Reads the global package cache.
readInstalledPackagesFromDir
:: Repository -> String -> ErrorLogger (Either String GlobalCache)
Tries to read package specifications from a GC directory structure. If some GC package directory has the same name as a package from the repository index, the package specification from the repository is used, otherwise (this case should not occur) the package specification stored in the directory is read. This should result in faster GC loading.