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,29 +102,29 @@ 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
nameVer =
display name ++
"-" ++
display (ppVersion plan)
-- | Make @cabal configure@ options for a package.
opts :: FilePath -> PerformBuild -> PackagePlan -> FilePattern -> [String]
opts shakeDir pb plan pwd =
[ "--package-db=clear" [ "--package-db=clear"
, "--package-db=global" , "--package-db=global"
, "--libdir=" ++ pwd <//> pbLibDir pb , "--libdir=" ++ pwd <//> pbLibDir pb
, "--bindir=" ++ pwd <//> pbBinDir pb , "--bindir=" ++ pwd <//> pbBinDir pb
, "--datadir=" ++ pwd <//> pbDataDir pb , "--datadir=" ++ pwd <//> pbDataDir pb
, "--docdir=" ++ pwd <//> pbDocDir pb , "--docdir=" ++ pwd <//> pbDocDir pb
, "--flags=" ++ flags] ++ , "--flags=" ++ planFlags plan] ++
["--package-db=" ++ ["--package-db=" ++
pwd <//> pwd <//>
targetForDb shakeDir pb | not (pbGlobalInstall pb)] targetForDb shakeDir pb | not (pbGlobalInstall pb)]
pkgDir =
shakeDir <//> nameVer -- | Generate a flags string for the package plan.
nameVer = planFlags :: PackagePlan -> String
display name ++ planFlags plan = unwords $ map go $ M.toList (pcFlagOverrides (ppConstraints plan))
"-" ++
display (ppVersion plan)
flags =
unwords $
map go $
M.toList
(pcFlagOverrides
(ppConstraints plan))
where where
go (name',isOn) = go (name',isOn) =
concat concat