packages feed

geni-util-0.24.1: geni-util-cmd/Config.hs

{-# 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)