mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-03-11 03:06:35 +01:00
Small refactoring
This commit is contained in:
parent
a94ff15c59
commit
127fe575e7
@ -88,10 +88,10 @@ packageTarget pb shakeDir name plan = do
|
|||||||
(M.keys (sdPackages (ppDesc plan))))
|
(M.keys (sdPackages (ppDesc plan))))
|
||||||
pwd <- liftIO getCurrentDirectory
|
pwd <- liftIO getCurrentDirectory
|
||||||
env <- liftIO (fmap (Env . (++ defaultEnv pwd)) getEnvironment)
|
env <- liftIO (fmap (Env . (++ defaultEnv pwd)) getEnvironment)
|
||||||
unpacked <- liftIO (doesDirectoryExist (shakeDir <//> nameVer))
|
unpacked <- liftIO (doesDirectoryExist pkgDir)
|
||||||
unless unpacked
|
unless unpacked $
|
||||||
(cmd (Cwd shakeDir) "cabal" "unpack" nameVer)
|
cmd (Cwd shakeDir) "cabal" "unpack" nameVer
|
||||||
() <- cmd cwd env "cabal" "configure" (opts pwd)
|
() <- cmd cwd env "cabal" "configure" (opts shakeDir pb plan pwd)
|
||||||
() <- cmd cwd env "cabal" "build"
|
() <- cmd cwd env "cabal" "build"
|
||||||
() <- cmd cwd env "cabal" "copy"
|
() <- cmd cwd env "cabal" "copy"
|
||||||
() <- cmd cwd env "cabal" "register"
|
() <- cmd cwd env "cabal" "register"
|
||||||
@ -102,36 +102,36 @@ packageTarget pb shakeDir name plan = do
|
|||||||
[ ( "HASKELL_PACKAGE_SANDBOX"
|
[ ( "HASKELL_PACKAGE_SANDBOX"
|
||||||
, pwd <//>
|
, pwd <//>
|
||||||
targetForDb shakeDir pb)]
|
targetForDb shakeDir pb)]
|
||||||
opts pwd =
|
pkgDir = shakeDir <//> nameVer
|
||||||
[ "--package-db=clear"
|
|
||||||
, "--package-db=global"
|
|
||||||
, "--libdir=" ++ pwd <//> pbLibDir pb
|
|
||||||
, "--bindir=" ++ pwd <//> pbBinDir pb
|
|
||||||
, "--datadir=" ++ pwd <//> pbDataDir pb
|
|
||||||
, "--docdir=" ++ pwd <//> pbDocDir pb
|
|
||||||
, "--flags=" ++ flags] ++
|
|
||||||
["--package-db=" ++
|
|
||||||
pwd <//>
|
|
||||||
targetForDb shakeDir pb | not (pbGlobalInstall pb)]
|
|
||||||
pkgDir =
|
|
||||||
shakeDir <//> nameVer
|
|
||||||
nameVer =
|
nameVer =
|
||||||
display name ++
|
display name ++
|
||||||
"-" ++
|
"-" ++
|
||||||
display (ppVersion plan)
|
display (ppVersion plan)
|
||||||
flags =
|
|
||||||
unwords $
|
-- | Make @cabal configure@ options for a package.
|
||||||
map go $
|
opts :: FilePath -> PerformBuild -> PackagePlan -> FilePattern -> [String]
|
||||||
M.toList
|
opts shakeDir pb plan pwd =
|
||||||
(pcFlagOverrides
|
[ "--package-db=clear"
|
||||||
(ppConstraints plan))
|
, "--package-db=global"
|
||||||
where
|
, "--libdir=" ++ pwd <//> pbLibDir pb
|
||||||
go (name',isOn) =
|
, "--bindir=" ++ pwd <//> pbBinDir pb
|
||||||
concat
|
, "--datadir=" ++ pwd <//> pbDataDir pb
|
||||||
[ if isOn
|
, "--docdir=" ++ pwd <//> pbDocDir pb
|
||||||
then ""
|
, "--flags=" ++ planFlags plan] ++
|
||||||
else "-"
|
["--package-db=" ++
|
||||||
, T.unpack (unFlagName name')]
|
pwd <//>
|
||||||
|
targetForDb shakeDir pb | not (pbGlobalInstall pb)]
|
||||||
|
|
||||||
|
-- | Generate a flags string for the package plan.
|
||||||
|
planFlags :: PackagePlan -> String
|
||||||
|
planFlags plan = unwords $ map go $ M.toList (pcFlagOverrides (ppConstraints plan))
|
||||||
|
where
|
||||||
|
go (name',isOn) =
|
||||||
|
concat
|
||||||
|
[ if isOn
|
||||||
|
then ""
|
||||||
|
else "-"
|
||||||
|
, T.unpack (unFlagName name')]
|
||||||
|
|
||||||
-- | Get the target file for confirming that all packages have been
|
-- | Get the target file for confirming that all packages have been
|
||||||
-- pre-fetched.
|
-- pre-fetched.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user