@@ -4,6 +4,7 @@ import Control.Exception
4import Control.Monad
4import Control.Monad
5import Data.Aeson
5import Data.Aeson
6import Data.Attoparsec (IResult(..), parseWith)
6import Data.Attoparsec (IResult(..), parseWith)
7+import Data.Char (isDigit)
7import Data.Time.Clock
8import Data.Time.Clock
8import System.Environment (getArgs)
9import System.Environment (getArgs)
9import System.IO
10import System.IO
@@ -22,7 +23,10 @@ instance NFData L.ByteString where
23main :: IO ()
24main :: IO ()
25− (cnt:args) <- getArgs
27+ let (cnt,args) = case args0 of
28+ (i:c:a) | all isDigit i && all isDigit c -> (c,a)
26 let count = read cnt :: Int
30 let count = read cnt :: Int
27 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
31 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
28 putStrLn $ arg ++ ":"
32 putStrLn $ arg ++ ":"
@@ -39,5 +43,5 @@ main = do
40 delta <- flip diffUTCTime start `fmap` getCurrentTime
44 delta <- flip diffUTCTime start `fmap` getCurrentTime
41 let rate = fromIntegral count / realToFrac delta :: Double
45 let rate = fromIntegral count / realToFrac delta :: Double
42− putStrLn $ " " ++ show delta
46+ putStrLn $ " " ++ cnt ++ " good, " ++ show delta
43 putStrLn $ " " ++ show (round rate :: Int) ++ " per second"
47 putStrLn $ " " ++ show (round rate :: Int) ++ " per second"