Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/29306b1d3e57bef4cf2df99cc532795d6cd7637a

>---------------------------------------------------------------

commit 29306b1d3e57bef4cf2df99cc532795d6cd7637a
Author: Lemmih <[email protected]>
Date:   Fri Aug 8 15:07:06 2008 +0000

    Store detailed build logs.

>---------------------------------------------------------------

 cabal-install/Distribution/Client/Install.hs |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/cabal-install/Distribution/Client/Install.hs 
b/cabal-install/Distribution/Client/Install.hs
index 6430639..71cb05b 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -22,7 +22,7 @@ import Data.Maybe
 import Control.Exception as Exception
          ( handle, Exception )
 import Control.Monad
-         ( when, unless )
+         ( when, unless, forM_ )
 import System.Directory
          ( getTemporaryDirectory, doesFileExist, createDirectoryIfMissing )
 import System.FilePath
@@ -43,15 +43,16 @@ import Distribution.Client.InstallPlan (InstallPlan)
 import Distribution.Client.Setup
          ( InstallFlags(..), configureCommand, filterConfigureFlags )
 import Distribution.Client.Config
-         ( defaultLogsDir )
+         ( defaultLogsDir, defaultCabalDir )
 import Distribution.Client.Tar (extractTarGzFile)
 import Distribution.Client.Types as Available
          ( UnresolvedDependency(..), AvailablePackage(..)
-         , AvailablePackageSource(..), Repo, ConfiguredPackage(..)
+         , AvailablePackageSource(..), Repo(..), ConfiguredPackage(..)
          , BuildResult, BuildFailure(..), BuildSuccess(..)
-         , DocsResult(..), TestsResult(..) )
+         , DocsResult(..), TestsResult(..), RemoteRepo(..) )
 import Distribution.Client.SetupWrapper
          ( setupWrapper, SetupScriptOptions(..), defaultSetupScriptOptions )
+import qualified Distribution.Client.BuildReports.Anonymous as BuildReports
 import qualified Distribution.Client.BuildReports.Storage as BuildReports
          ( storeAnonymous, storeLocal, fromInstallPlan )
 import qualified Distribution.Client.InstallSymlink as InstallSymlink
@@ -166,6 +167,7 @@ installWithPlanner planner verbosity packageDB repos comp 
conf configFlags insta
         let buildReports = BuildReports.fromInstallPlan installPlan'
         BuildReports.storeAnonymous buildReports
         BuildReports.storeLocal     buildReports
+        storeDetailedBuildReports logsDir buildReports
         symlinkBinaries verbosity configFlags installFlags installPlan'
         printBuildFailures installPlan'
 
@@ -201,6 +203,20 @@ installWithPlanner planner verbosity packageDB repos comp 
conf configFlags insta
       libVersion = Cabal.flagToMaybe (installCabalVersion installFlags)
     }
 
+storeDetailedBuildReports :: FilePath -> [(BuildReports.BuildReport, Repo)] -> 
IO ()
+storeDetailedBuildReports logsDir reports
+    = forM_ reports $ \(report,repo) ->
+      do buildLog <- readFile (logsDir </> display (BuildReports.package 
report) <.> "log")
+         case repoKind repo of
+           Left remoteRepo
+                -> do dotCabal <- defaultCabalDir
+                      let destDir = dotCabal </> "reports" </> remoteRepoName 
remoteRepo
+                          dest = destDir </> display (BuildReports.package 
report) <.> "log"
+                      createDirectoryIfMissing True destDir -- FIXME
+                      writeFile dest (show (BuildReports.show report, 
buildLog))
+           Right{} -> return ()
+         
+
 -- | Make an 'InstallPlan' for the unpacked package in the current directory,
 -- and all its dependencies.
 --



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to