nptools-0.1: mh-gen-message-id-mapping.hs
import HSH
import Data.Char
import Data.Maybe
import Data.List
import qualified Data.ByteString.Lazy.Char8 as B
import Control.Monad
import Control.Applicative
import System.Environment
main :: IO ()
main =
do [arg] <- getArgs
path <- runSL ("mhpath", [arg])
paths <- glob $ path ++ "/[0-9]*"
mapM_ f paths
where
f i = B.putStrLn . (`B.append` (B.pack (' ':i))) =<< mid i
mid fp = fromMaybe (B.pack "<NO-VALID-MESSAGE-ID>")
. fmap (B.dropWhile isSpace . B.drop (B.length message_id))
. find isMessageIDline . B.lines <$> B.readFile fp
isMessageIDline = (message_id `B.isPrefixOf`) . B.map toLower
message_id = B.pack "message-id: "