{-# LANGUAGE TemplateHaskell #-}
module Config where
import Data.Label
import System.Console.GetOpt
data Config = Config
{
_configWidth :: Int
, _configHeight :: Int
, _configZoom :: Int
}
deriving Show
$(mkLabels [''Config])
defaults :: Config
defaults = Config
{ _configWidth = 320
, _configHeight = 240
, _configZoom = 2
}
options :: [OptDescr (Config -> Config)]
options =
[ Option [] ["width"] (ReqArg (set configWidth . read) "INT") "visualisation size (320)"
, Option [] ["height"] (ReqArg (set configHeight . read) "INT") "visualisation size (240)"
, Option [] ["zoom"] (ReqArg (set configZoom . read) "INT") "pixel replication factor (2)"
]
header :: [String]
header =
[ "accelerate-tunnel (c) [2016] The Accelerate Team"
, ""
, "Usage: accelerate-tunnel [OPTIONS]"
, ""
]
footer :: [String]
footer = [ "" ]