Tweak the bindist comparison tool
authorIan Lynagh <ian@well-typed.com>
Sat, 20 Apr 2013 16:55:13 +0000 (17:55 +0100)
committerIan Lynagh <ian@well-typed.com>
Sat, 20 Apr 2013 16:55:13 +0000 (17:55 +0100)
It now just warns about files it doesn't recognise, rather than giving
an error. This means that random text files etc in the same directory
as the bindists don't make it fall over.

distrib/compare/Utils.hs
distrib/compare/compare.hs

index 720f533..bc4fd20 100644 (file)
@@ -11,11 +11,15 @@ die :: Errors -> IO a
 die errs = do mapM_ (hPutStrLn stderr) errs
               exitFailure
 
+warn :: Errors -> IO ()
+warn warnings = mapM_ (hPutStrLn stderr) warnings
+
 dieOnErrors :: Either Errors a -> IO a
 dieOnErrors (Left errs) = die errs
 dieOnErrors (Right x) = return x
 
 type Errors = [String]
+type Warnings = [String]
 
 maybeRead :: Read a => String -> Maybe a
 maybeRead str = case reads str of
index 23b983f..81055c2 100644 (file)
@@ -52,7 +52,8 @@ doDirectory ignoreSizeChanges p1 p2
           mkFileInfo fp@('g':'h':'c':'-':x:xs)
            | isDigit x = return [(("ghc-", "VERSION", dropWhile isVersionChar xs), fp)]
            | otherwise = die ["No version number in " ++ show fp]
-          mkFileInfo fp = die ["Unrecognised filename " ++ show fp]
+          mkFileInfo fp = do warn ["Unrecognised filename " ++ show fp]
+                             return []
       fss1' <- mapM mkFileInfo fs1
       fss2' <- mapM mkFileInfo fs2
       let fs1' = sort $ concat fss1'