on 1.2.0.0 help sign in
37 lines 887 B history raw
1{-# LANGUAGE BangPatterns #-}
2{-# LANGUAGE OverloadedStrings #-}
4module Main (main) where
6import Prelude ()
7import Prelude.Compat
9import Control.DeepSeq
10import Control.Exception
11import Control.Monad
12import Data.Aeson
13import Data.Aeson.Parser
14import Data.Attoparsec
15import Data.Time.Clock
16import System.Environment (getArgs)
17import System.IO
18import qualified Data.ByteString as B
20main = do
21 (cnt:args) <- getArgs
22 let count = read cnt :: Int
23 forM_ args $ \arg -> withFile arg ReadMode $ \h -> do
24 putStrLn $ arg ++ ":"
25 start <- getCurrentTime
26 let loop !n
27 | n >= count = return ()
28 | otherwise = do
29 let go = do
30 s <- B.hGet h 16384
31 if B.null s
32 then loop (n+1)
33 else go
34 go
35 loop 0
36 end <- getCurrentTime
37 putStrLn $ " " ++ show (diffUTCTime end start)