stackage/app/stackage.hs
2014-12-31 19:36:21 +01:00

47 lines
1.7 KiB
Haskell

module Main where
import Control.Monad
import Data.Monoid
import Data.Version
import Options.Applicative
import Paths_stackage (version)
import Stackage.CompleteBuild
main :: IO ()
main =
join (execParser
(info (helpOption <*> versionOption <*> config)
(header "Stackage" <>
fullDesc)))
where helpOption =
abortOption
ShowHelpText
(long "help" <>
help "Show this help text")
versionOption =
infoOption
("fpbuild version " ++ showVersion version)
(long "version" <>
help "Show fpbuild version")
config =
subparser (mconcat [cmnd completeBuild
(pure Nightly)
"nightly"
"Build, test and upload the Nightly snapshot"
,cmnd completeBuild
(pure (LTS Major))
"lts-major"
"Build, test and upload the LTS (major) snapshot"
,cmnd completeBuild
(pure (LTS Minor))
"lts-minor"
"Build, test and upload the LTS (minor) snapshot"
,cmnd (const justCheck)
(pure ())
"check"
"Just check that the build plan is ok"])
cmnd exec parse name desc =
(command name
(info (fmap exec parse)
(progDesc desc)))