{-# LANGUAGE Strict #-}
module Main (main) where
import Data.Monoid ((<>))
import qualified Options.Applicative as Options
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
import qualified Text.StringRandom as StringRandom
argParser :: Options.Parser Text.Text
argParser = Text.pack <$> Options.strArgument
( Options.metavar "REGEXP"
<> Options.help "Regexp as a template (e.g. '[1-3]{2}random[!?]')"
)
main :: IO ()
main = do
pat <- Options.execParser opts
txt <- StringRandom.stringRandomIO pat
Text.putStrLn txt
where
opts = Options.info (Options.helper <*> argParser)
( Options.fullDesc
<> Options.header "hstrrand - Generate string which matches REGEXP" )