summaryrefslogtreecommitdiff
path: root/hadrian/src/Settings/Builders/GhcPkg.hs
blob: bc8303f5a1ce945fedb7e8f4bbc16daa541c6ffd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
module Settings.Builders.GhcPkg (ghcPkgBuilderArgs) where

import Settings.Builders.Common

ghcPkgBuilderArgs :: Args
ghcPkgBuilderArgs = mconcat
    [ builder (GhcPkg Init) ? mconcat [ arg "init", arg =<< getOutput ]
    , builder (GhcPkg Copy) ? do
        verbosity <- expr getVerbosity
        stage     <- getStage
        pkgDb     <- expr $ packageDbPath stage
        mconcat [ arg "--global-package-db"
                , arg pkgDb
                , arg "register"
                , verbosity < Chatty ? arg "-v0"
                ]
    , builder (GhcPkg Unregister) ? do
        verbosity <- expr getVerbosity
        stage     <- getStage
        pkgDb     <- expr $ packageDbPath stage
        mconcat [ arg "--global-package-db"
                , arg pkgDb
                , arg "unregister"
                , arg "--force"
                , verbosity < Chatty ? arg "-v0"
                ]
    , builder (GhcPkg Update) ? do
        verbosity <- expr getVerbosity
        context   <- getContext
        config    <- expr $ pkgInplaceConfig context
        stage     <- getStage
        pkgDb     <- expr $ packageDbPath stage
        mconcat [ notStage0 ? arg "--global-package-db"
                , notStage0 ? arg pkgDb
                , arg "update"
                , arg "--force"
                , verbosity < Chatty ? arg "-v0"
                , bootPackageDatabaseArgs
                , arg config ] ]