tabloid-0.3: PerformanceTuning.hs
module Main where
import qualified System.Process as P
import System.IO
import qualified Data.ByteString.Lazy.Char8 as L
import SimpleRegex
import Control.Concurrent
main = do
lines <- L.readFile "testdata"
res <- testAction lines
putStrLn $ show res
return ()
interactive_test = do
let text = "cat testdata"
(hin, hout, _, ph) <- P.runInteractiveProcess "/bin/bash" [] Nothing Nothing
hPutStr hin text
lines <- L.hGetContents hout
res <- testAction lines
putStrLn $ show res
ec <- P.waitForProcess ph
return ()
test_rx = "([0-9]{4}-[0-9]{2}-[0-9]{2} ..:..:..),....+[[][0-9]+[]] ([^ ]+) +(incoming|outgoing) c[Aa]ll #([0-9]+)/R:(.+)/C:(.+)/L:([0-9-]+) BCH#(.+)/DCH#(.+):(.+)/BRD#(.+) .+ CRN ([0-9A-Za-z]+) @([-0-9]+) (from|local) (.+) (to|remote) (.+) [[][^ ]+ *(.*)$"
testAction c = do
rx <- compile "(incoming)"
return $ map (submatches rx) (L.lines c)
testAction2 c = do
-- rx <- compile "([0-9]{4}-[0-9]{2}-[0-9]{2} ..:..:..),....+[[][0-9]+[]] ([^ ]+) +(incoming|outgoing) c[Aa]ll #([0-9]+)/R:(.+)/C:(.+)/L:([0-9-]+) BCH#(.+)/DCH#(.+):(.+)/BRD#(.+) .+ CRN ([0-9A-Za-z]+) @([-0-9]+) local (.+) remote (.+) [[][^ ]+ *(.*)$"
rx <- compile "(incoming)"
let sms = catSubmatches rx $ L.lines c
return $ map (\ (ss, s) ->
case ss of
[] -> [s]
_ -> ss) sms