[commit: Cabal] master: Be more robust when dealing with external tar (a20fb83)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:44:38 CEST 2011
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 <mnislaih at gmail.com>
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 <-
More information about the Cvs-libraries
mailing list