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
