[tools] 01/01: binNMUs: Switch to Packages.xz
Joachim Breitner
nomeata at moszumanska.debian.org
Thu Mar 31 07:27:04 UTC 2016
This is an automated email from the git hooks/post-receive script.
nomeata pushed a commit to branch master
in repository tools.
commit ec922337a3f8745496daf1d24bb8f8961a7d159c
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Thu Mar 31 09:24:38 2016 +0200
binNMUs: Switch to Packages.xz
---
AcquireFile.hs | 10 +++-------
binNMUs.hs | 28 ++++++++++++++++++----------
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/AcquireFile.hs b/AcquireFile.hs
index 9fb6c79..e79a0fa 100644
--- a/AcquireFile.hs
+++ b/AcquireFile.hs
@@ -1,6 +1,5 @@
module AcquireFile (acquireFile) where
-import Codec.Compression.GZip (decompress)
import qualified System.IO.Strict as S
import System.IO
import System.IO.Error
@@ -15,8 +14,8 @@ import Data.List
-- File acquirance
-acquireFile :: String -> Bool -> Bool -> IO B.ByteString
-acquireFile url ungz offline = do
+acquireFile :: String -> Bool -> IO B.ByteString
+acquireFile url offline = do
cachePath <- chooseCachePath
case cachePath of
Nothing -> do
@@ -44,10 +43,7 @@ acquireFile url ungz offline = do
hPutStrLn stderr $ "File " ++ savename ++ " does not exist after invoking"
hPutStrLn stderr $ intercalate " " ("curl" : args)
exitFailure
- text <- B.readFile savename
- return $ if ungz
- then BL.toStrict $ decompress $ BL.fromStrict text
- else text
+ B.readFile savename
where fixChar '/' = '_'
fixChar ':' = '_'
fixChar c = c
diff --git a/binNMUs.hs b/binNMUs.hs
index 7cd8676..9b5f7d6 100644
--- a/binNMUs.hs
+++ b/binNMUs.hs
@@ -5,6 +5,8 @@ import Data.List
import Data.List.Split
import Data.Maybe
import Data.Char
+import qualified Codec.Compression.GZip
+import qualified Codec.Compression.Lzma
import Data.Ord
import Data.Function
import Options.Applicative
@@ -20,6 +22,7 @@ import System.IO
import System.Exit
import Control.Arrow
import qualified Data.ByteString.Char8 as B
+import qualified Data.ByteString.Lazy as BL
import Data.Time
import Control.Lens
import Control.Seq
@@ -322,7 +325,7 @@ fetchWB = Query $ B.pack $ "\
fetchWannaBuildHTTP :: Conf -> Arch -> IO WBMap
fetchWannaBuildHTTP conf a = do
- s <- acquireFile' conf True url
+ s <- unGZ <$> acquireFile' conf url
case parseControl url s of
Left pe -> error $ show pe
Right c -> return $! M.fromList $! (map parsePara (unControl c) `using` seqList rdeepseq)
@@ -347,14 +350,14 @@ debianMirror :: String
debianMirror = "http://cdn-fastly.deb.debian.org/debian"
packageURL :: String -> Arch -> String
-packageURL "sid" a = printf "%s/dists/sid/main/binary-%s/Packages.gz" debianMirror a
-packageURL "buildd-sid" a = printf "http://incoming.debian.org/debian-buildd/dists/buildd-sid/main/binary-%s/Packages.gz" a
-packageURL "experimental" a = printf "%s/dists/experimental/main/binary-%s/Packages.gz" debianMirror a
-packageURL "buildd-experimental" a = printf "http://incoming.debian.org/debian-buildd/dists/buildd-experimental/main/binary-%s/Packages.gz" a
+packageURL "sid" a = printf "%s/dists/sid/main/binary-%s/Packages.xz" debianMirror a
+packageURL "buildd-sid" a = printf "http://incoming.debian.org/debian-buildd/dists/buildd-sid/main/binary-%s/Packages.xz" a
+packageURL "experimental" a = printf "%s/dists/experimental/main/binary-%s/Packages.xz" debianMirror a
+packageURL "buildd-experimental" a = printf "http://incoming.debian.org/debian-buildd/dists/buildd-experimental/main/binary-%s/Packages.xz" a
acquirePackagesHTTP :: Conf -> String -> Arch -> IO [Binary]
acquirePackagesHTTP conf suite arch = do
- s <- acquireFile' conf True url
+ s <- unXZ <$> acquireFile' conf url
case parseControl url s of
Left pe -> error $ show pe
Right c -> return $!
@@ -424,11 +427,11 @@ fetchArchiveHTTP conf a = do
let pkgs2' = [ p | p <- pkgs2 , bPkgName p `S.notMember` pkg1_names ]
return $ pkgs1 ++ pkgs2'
-acquireFile' :: Conf -> Bool -> String -> IO B.ByteString
-acquireFile' conf ungz url = do
+acquireFile' :: Conf -> String -> IO B.ByteString
+acquireFile' conf url = do
unless q $ hPutStr stderr $ printf "Fetching %s ..." url
unless q $ hFlush stderr
- s <- acquireFile url ungz o
+ s <- acquireFile url o
unless q $ hPutStrLn stderr $ printf " done."
return s
where o = offline conf
@@ -492,7 +495,7 @@ wnppDumpUrl = "https://qa.debian.org/data/bts/wnpp_rm"
fetchWnppDump :: Conf -> IO [SourceName]
fetchWnppDump conf = do
- s <- acquireFile' conf False url
+ s <- acquireFile' conf url
return $ mapMaybe parseLine $ map B.unpack $ B.lines s
where
url = wnppDumpUrl
@@ -595,8 +598,13 @@ parseFlatRel = flatRels . parseRels
Left pe -> error $ printf "Failed to parse relations %s" (show pe)
Right rel -> rel
+-- Unpacking
+unGZ :: B.ByteString -> B.ByteString
+unGZ = BL.toStrict . Codec.Compression.GZip.decompress . BL.fromStrict
+unXZ :: B.ByteString -> B.ByteString
+unXZ = BL.toStrict . Codec.Compression.Lzma.decompress . BL.fromStrict
-- Utils
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/tools.git
More information about the Pkg-haskell-commits
mailing list