Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/a20fb831d1b7ebd901f091db346ad803c060d635 >--------------------------------------------------------------- commit a20fb831d1b7ebd901f091db346ad803c060d635 Author: Pepe Iborra <[email protected]> Date: Sun May 20 20:21:37 2007 +0000 Be more robust when dealing with external tar >--------------------------------------------------------------- .../src/Network/Hackage/CabalInstall/TarUtils.hs | 5 +++-- .../src/Network/Hackage/CabalInstall/Update.hs | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/TarUtils.hs b/cabal-install/src/Network/Hackage/CabalInstall/TarUtils.hs index 536e0a3..81289e6 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/TarUtils.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/TarUtils.hs @@ -17,6 +17,7 @@ module Network.Hackage.CabalInstall.TarUtils , extractTarFile ) where +import Data.Char (isSpace) import System.FilePath import System.IO (hClose, hGetContents) import System.Process (runInteractiveProcess, runProcess, waitForProcess) @@ -37,12 +38,12 @@ tarballGetFiles tarProg tarFile eCode <- waitForProcess handle case eCode of ExitFailure err -> error $ printf "Failed to get filelist from '%s': %s." tarFile (show err) - _ -> return (lines files) + _ -> return (map trim $ lines files) where args = ["--list" ,"--gunzip" ,"--file" ,tarFile] - + trim = reverse . dropWhile isSpace . reverse . dropWhile isSpace --slow'y {-| Find a file in a given directory. diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Update.hs b/cabal-install/src/Network/Hackage/CabalInstall/Update.hs index 850e54a..7899fe6 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Update.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Update.hs @@ -22,7 +22,7 @@ import Network.Hackage.CabalInstall.Fetch (downloadIndex, packagesDirectory) import Distribution.Package (PackageIdentifier(..), pkgName, showPackageId) import Distribution.PackageDescription (PackageDescription(..), readPackageDescription) import Distribution.Verbosity -import System.FilePath ((</>), joinPath, addExtension) +import System.FilePath ((</>), joinPath, addExtension, takeExtension) import Control.Monad (liftM) import Data.List (isSuffixOf) @@ -39,7 +39,7 @@ update cfg = let packageDir = packagesDirectory cfg cabalFiles = [ packageDir </> path | path <- contents - , ".cabal" `isSuffixOf` path ] + , ".cabal" == takeExtension path ] v = configVerbose cfg v'= if v == verbose then normal else v packageDescriptions <- _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
