scrapbook-0.3.2: src/ScrapBook/Cmd/Options.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE TypeOperators #-}
module ScrapBook.Cmd.Options where
import RIO
import Data.Extensible
import Data.Extensible.GetOpt
import ScrapBook.Data.Format
type Options = Record
'[ "input" >: [FilePath]
, "output" >: Maybe FilePath
, "write" >: Format
, "version" >: Bool
]
outputOpt :: OptDescr' (Maybe FilePath)
outputOpt =
optionReqArg (pure . listToMaybe) ['o'] ["output"]
"DIR" "Write output to DIR instead of stdout."
writeFormatOpt :: OptDescr' Format
writeFormatOpt =
optionReqArg (pure . optFormat) ['t','w'] ["to","write"]
"FORMAT" "Specify output format. default is `feed`."
versionOpt :: OptDescr' Bool
versionOpt = optFlag [] ["version"] "Show version"