on master help sign in
37 lines 904 B history raw
1{-# LANGUAGE BangPatterns #-}
2{-# LANGUAGE NoImplicitPrelude #-}
3{-# LANGUAGE OverloadedStrings #-}
5module Main (main) where
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)