on 0.7.0.2 help sign in
31 lines 821 B history raw
1{-# LANGUAGE BangPatterns, OverloadedStrings #-}
3import Control.DeepSeq
4import Control.Exception
5import Control.Monad
6import Data.Aeson
7import Data.Aeson.Parser
8import Data.Attoparsec
9import Data.Time.Clock
10import System.Environment (getArgs)
11import System.IO
12import qualified Data.ByteString as B
14main = do
15 (cnt:args) <- getArgs
16 let count = read cnt :: Int
17 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
18 putStrLn $ arg ++ ":"
19 start <- getCurrentTime
20 let loop !n
21 | n >= count = return ()
22 | otherwise = do
23 let go = do
24 s <- B.hGet h 16384
25 if B.null s
26 then loop (n+1)
27 else go
28 go
29 loop 0
30 end <- getCurrentTime
31 putStrLn $ " " ++ show (diffUTCTime end start)