axel-0.0.5: src/Axel/Parse/Args.hs
module Axel.Parse.Args where
import Data.Semigroup ((<>))
import Options.Applicative
( Parser
, argument
, command
, info
, metavar
, progDesc
, str
, subparser
)
data ModeCommand
= File FilePath
| Project
modeCommandParser :: Parser ModeCommand
modeCommandParser = subparser $ projectCommand <> fileCommand
where
fileCommand =
command
"file"
(info (File <$> argument str (metavar "FILE")) $
progDesc "Build and run a single file")
projectCommand =
command
"project"
(info (pure Project) $ progDesc "Build and run the project")