getopt-generics-0.11: docs/CustomOptionRecord.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}
module CustomOptionRecord where
import qualified GHC.Generics
import WithCli
data File = File FilePath
deriving (Show, Typeable)
instance Argument File where
argumentType Proxy = "custom-file-type"
parseArgument f = Just (File f)
data Options
= Options {
file :: File
}
deriving (Show, GHC.Generics.Generic)
instance Generic Options
instance HasDatatypeInfo Options
instance HasArguments Options
instance HasArguments File where
argumentsParser = atomicArgumentsParser
main :: IO ()
main = withCli run
run :: Options -> IO ()
run = print