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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/e6dd889c715ec305301d4b9b24524a9084121061

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

commit e6dd889c715ec305301d4b9b24524a9084121061
Author: Lemmih <[email protected]>
Date:   Fri Aug 8 15:07:37 2008 +0000

    First stab at uploading the detailed logs.

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

 cabal-install/Distribution/Client/Upload.hs |   35 +++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/cabal-install/Distribution/Client/Upload.hs 
b/cabal-install/Distribution/Client/Upload.hs
index 7ca6edd..f5dccd7 100644
--- a/cabal-install/Distribution/Client/Upload.hs
+++ b/cabal-install/Distribution/Client/Upload.hs
@@ -1,13 +1,19 @@
 -- This is a quick hack for uploading packages to Hackage.
 -- See http://hackage.haskell.org/trac/hackage/wiki/CabalUpload
 
-module Distribution.Client.Upload (check, upload) where
+module Distribution.Client.Upload (check, upload, report) where
 
-import Distribution.Client.Types (Username(..), Password(..))
+import Distribution.Client.Types (Username(..), 
Password(..),Repo(..),RemoteRepo(..))
 import Distribution.Client.HttpUtils (proxy)
 
-import Distribution.Simple.Utils (debug, notice, warn)
+import Distribution.Simple.Utils (debug, notice, warn, info)
 import Distribution.Verbosity (Verbosity)
+import Distribution.Text (display)
+import Distribution.Client.Config
+
+import qualified Distribution.Client.BuildReports.Anonymous as BuildReport
+import qualified Distribution.Client.BuildReports.Upload as BuildReport
+import qualified Distribution.Client.BuildReports.Storage as BuildReport
 
 import Network.Browser
          ( BrowserAction, browse, request
@@ -24,7 +30,9 @@ import System.IO        (hFlush, stdin, stdout, hGetEcho, 
hSetEcho
                         ,openBinaryFile, IOMode(ReadMode), hGetContents)
 import Control.Exception (bracket)
 import System.Random    (randomRIO)
-
+import System.FilePath
+import System.Directory
+import Control.Monad (forM_)
 
 
 --FIXME: how do we find this path for an arbitrary hackage server?
@@ -68,6 +76,25 @@ upload verbosity mUsername mPassword paths = do
         hSetEcho stdin False  -- no echoing for entering the password
         fmap Password getLine
 
+report :: Verbosity -> [Repo] -> IO ()
+report verbosity repos
+    = forM_ repos $ \repo ->
+      case repoKind repo of
+        Left remoteRepo
+            -> do dotCabal <- defaultCabalDir
+                  let srcDir = dotCabal </> "reports" </> remoteRepoName 
remoteRepo
+                  contents <- getDirectoryContents srcDir
+                  forM_ contents $ \logFile ->
+                      do inp <- readFile (srcDir </> logFile)
+                         let (reportStr, buildLog) = read inp
+                         case BuildReport.parse reportStr of
+                           Left errs -> do warn verbosity $ "Errors: " ++ errs 
-- FIXME
+                           Right report ->
+                               do info verbosity $ "Uploading report for " ++ 
display (BuildReport.package report)
+                                  browse $ BuildReport.uploadReports 
(remoteRepoURI remoteRepo) [(report, buildLog)]
+                                  return ()
+        Right{} -> return ()
+
 check :: Verbosity -> [FilePath] -> IO ()
 check verbosity paths = do
           flip mapM_ paths $ \path -> do



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

Reply via email to