{-# LANGUAGE NoImplicitPrelude #-}
module Stack.Options.SDistParser where
import Options.Applicative
import Options.Applicative.Builder.Extra
import Stack.Prelude
import Stack.SDist
import Stack.Options.HpcReportParser (pvpBoundsOption)
sdistOptsParser :: Bool
-> Parser SDistOpts
sdistOptsParser signDefault = SDistOpts <$>
many (strArgument $ metavar "DIR" <> completer dirCompleter) <*>
optional pvpBoundsOption <*>
ignoreCheckSwitch <*>
(if signDefault
then not <$> switch (long "no-signature" <> help "Do not sign & upload signatures")
else switch (long "sign" <> help "Sign & upload signatures")) <*>
strOption
(long "sig-server" <> metavar "URL" <> showDefault <>
value "https://sig.commercialhaskell.org" <>
help "URL") <*>
buildPackageOption <*>
optional (strOption (long "tar-dir" <> help "If specified, copy all the tar to this dir"))
where
ignoreCheckSwitch =
switch (long "ignore-check"
<> help "Do not check package for common mistakes")
buildPackageOption =
boolFlags False "test-tarball" "building of the resulting tarball" idm