mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-11 23:08:30 +01:00
47 lines
1.7 KiB
Haskell
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)))
|