pdfname-0.1: src/Options.hs
-- | Process the command-line arguments.
module Options
( options
, Options( Options -- Improve Haddock information.
, optDryRun
, optInputFile
)
, outputDir
) where
import Data.Monoid ( (<>) )
import Options.Applicative
( argument
, info
, infoOption
, help
, helper
, long
, metavar
, Parser
, ParserInfo
, short
, str
, switch
)
------------------------------------------------------------------------------
-- Local imports
import Utilities ( progNameVersion )
------------------------------------------------------------------------------
-- | Program command-line options.
data Options = Options
{ optDryRun ∷ Bool
, optInputFile ∷ FilePath
}
pOptDryRun ∷ Parser Bool
pOptDryRun =
switch ( long "dry-run"
<> help ("Do not create the PDF file only print which would be "
++ "its full path name")
)
-- | Parse a version flag.
pOptVersion ∷ Parser (a → a)
pOptVersion = infoOption progNameVersion $
long "version"
<> short 'V'
<> help "Show version number"
pOptInputFile ∷ Parser FilePath
pOptInputFile = argument str (metavar "FILE")
pOptions :: Parser Options
pOptions = Options <$> pOptDryRun <*> pOptInputFile
options ∷ ParserInfo Options
options = info (helper <*> pOptVersion <*> pOptions) mempty
outputDir ∷ FilePath
outputDir = "/tmp/"