Distribution.Client.Install

cabal-install-3.12.1.0: The command-line interface for Cabal and Hackage.

Copyright | (c) 2005 David Himmelstrup 2007 Bjorn Bringert 2007-2010 Duncan Coutts
License | BSD-like
Maintainer | cabal-devel@haskell.org
Stability | provisional
Portability | portable
Safe Haskell | None
Language | Haskell2010

Distribution.Client.Install

Contents

- High-level interface
- Lower-level interface that allows to manipulate the install plan
- Prune certain packages from the install plan

Description

High level interface to package installation.

Synopsis

- install :: Verbosity -> PackageDBStack -> RepoContext -> Compiler -> Platform -> ProgramDb -> GlobalFlags -> ConfigFlags -> ConfigExFlags -> InstallFlags -> HaddockFlags -> TestFlags -> BenchmarkFlags -> [UserTarget] -> IO ()
- makeInstallContext :: Verbosity -> InstallArgs -> Maybe [UserTarget] -> IO InstallContext
- makeInstallPlan :: Verbosity -> InstallArgs -> InstallContext -> IO (Progress String String SolverInstallPlan)
- processInstallPlan :: Verbosity -> InstallArgs -> InstallContext -> SolverInstallPlan -> IO ()
- type InstallArgs = (PackageDBStack, RepoContext, Compiler, Platform, ProgramDb, GlobalFlags, ConfigFlags, ConfigExFlags, InstallFlags, HaddockFlags, TestFlags, BenchmarkFlags)
- type InstallContext = (InstalledPackageIndex, SourcePackageDb, PkgConfigDb, [UserTarget], [PackageSpecifier UnresolvedSourcePackage], HttpTransport)
- pruneInstallPlan :: Package targetpkg => [PackageSpecifier targetpkg] -> SolverInstallPlan -> Progress String String SolverInstallPlan

# High-level interface

install :: Verbosity -> PackageDBStack -> RepoContext -> Compiler -> Platform -> ProgramDb -> GlobalFlags -> ConfigFlags -> ConfigExFlags -> InstallFlags -> HaddockFlags -> TestFlags -> BenchmarkFlags -> [UserTarget] -> IO () #

Installs the packages needed to satisfy a list of dependencies.

# Lower-level interface that allows to manipulate the install plan

makeInstallContext :: Verbosity -> InstallArgs -> Maybe [UserTarget] -> IO InstallContext #

Make an install context given install arguments.

makeInstallPlan :: Verbosity -> InstallArgs -> InstallContext -> IO (Progress String String SolverInstallPlan) #

Make an install plan given install context and install arguments.

processInstallPlan :: Verbosity -> InstallArgs -> InstallContext -> SolverInstallPlan -> IO () #

Given an install plan, perform the actual installations.

type InstallArgs = (PackageDBStack, RepoContext, Compiler, Platform, ProgramDb, GlobalFlags, ConfigFlags, ConfigExFlags, InstallFlags, HaddockFlags, TestFlags, BenchmarkFlags) #

Initial arguments given to `install` or `makeInstallContext`.

type InstallContext = (InstalledPackageIndex, SourcePackageDb, PkgConfigDb, [UserTarget], [PackageSpecifier UnresolvedSourcePackage], HttpTransport) #

Common context for makeInstallPlan and processInstallPlan.

# Prune certain packages from the install plan

pruneInstallPlan :: Package targetpkg => [PackageSpecifier targetpkg] -> SolverInstallPlan -> Progress String String SolverInstallPlan #

Remove the provided targets from the install plan.