Small refactoring

This commit is contained in:
Chris Done 2015-01-13 19:31:13 +01:00
parent a94ff15c59
commit 127fe575e7

View File

@ -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.