on master help sign in
tar 0.3 support without CPP
8ab54e6Michael Snoyman
Stackage/LoadDatabase.hs+1−6
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
2module Stackage.LoadDatabase where
1module Stackage.LoadDatabase where
3
2
4import qualified Codec.Archive.Tar as Tar
3import qualified Codec.Archive.Tar as Tar
@@ -44,11 +43,7 @@ loadPackageDB core deps = do
44 lbs <- L.readFile tarName
43 lbs <- L.readFile tarName
45 addEntries mempty $ Tar.read lbs
44 addEntries mempty $ Tar.read lbs
46 where
45 where
47−#if MIN_VERSION_tar(0, 4, 0)
48− addEntries _ (Tar.Fail e) = throwIO e
49−#else
50− addEntries _ (Tar.Fail e) = error e
46+ addEntries _ (Tar.Fail e) = error $ show e
51−#endif
52 addEntries db Tar.Done = return db
47 addEntries db Tar.Done = return db
53 addEntries db (Tar.Next e es) = addEntry db e >>= flip addEntries es
48 addEntries db (Tar.Next e es) = addEntry db e >>= flip addEntries es
54
49
Stackage/Tarballs.hs+2−6
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
2module Stackage.Tarballs
1module Stackage.Tarballs
3 ( makeTarballs
2 ( makeTarballs
4 ) where
3 ) where
@@ -27,11 +26,8 @@ makeTarballs ii = do
27 createDirectoryIfMissing True $ takeDirectory extraTar
26 createDirectoryIfMissing True $ takeDirectory extraTar
28 L.writeFile extraTar $ Tar.write extraEntries
27 L.writeFile extraTar $ Tar.write extraEntries
29 where
28 where
30−#if MIN_VERSION_tar(0, 4, 0)
29+ -- Using "error . show" for compatibility with tar 0.3 and 0.4
31− loop _ _ (Tar.Fail err) = throwIO err
30+ loop _ _ (Tar.Fail err) = error $ show err
32−#else
33− loop _ _ (Tar.Fail err) = error err
34−#endif
35 loop stable extra Tar.Done = return (stable [], extra [])
31 loop stable extra Tar.Done = return (stable [], extra [])
36 loop stable extra (Tar.Next e es) =
32 loop stable extra (Tar.Next e es) =
37 loop stable' extra' es
33 loop stable' extra' es