packages feed

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: "