{-# LANGUAGE DeriveDataTypeable #-} module Config where import Data.Version import Data.Word (Word16) import System.Console.CmdArgs import Paths_geni_util (version) data GeniUtil = Client { server :: String , port :: Word16 , suite :: FilePath , batchDir :: FilePath } | Report { inputDir :: FilePath , outputDir :: FilePath } deriving (Typeable, Data, Eq, Show) geniUtil :: String -> GeniUtil geniUtil p = modes [ Client { server = def &= argPos 0 &= typ "URL" , suite = def &= typFile , port = 4364 &= typ "PORT" , batchDir = def &= typDir } , Report { inputDir = def &= argPos 0 &= typDir , outputDir = def &= argPos 1 &= typDir } ] &= program p &= help (p ++ " " ++ showVersion version)