{-# LANGUAGE NoImplicitPrelude #-}
module Stack.Options.UploadParser
( UploadOpts (..)
, UploadVariant (..)
, uploadOptsParser
) where
import Options.Applicative
import Stack.Options.SDistParser ( sdistOptsParser )
import Stack.Prelude
import Stack.SDist ( SDistOpts (..) )
data UploadOpts = UploadOpts
{ UploadOpts -> SDistOpts
uoptsSDistOpts :: SDistOpts
, UploadOpts -> UploadVariant
uoptsUploadVariant :: UploadVariant
}
data UploadVariant
= Publishing
| Candidate
uploadOptsParser :: Parser UploadOpts
uploadOptsParser :: Parser UploadOpts
uploadOptsParser =
SDistOpts -> UploadVariant -> UploadOpts
UploadOpts
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser SDistOpts
sdistOptsParser
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser UploadVariant
uploadVariant
where
uploadVariant :: Parser UploadVariant
uploadVariant =
forall a. a -> a -> Mod FlagFields a -> Parser a
flag UploadVariant
Publishing UploadVariant
Candidate
(forall (f :: * -> *) a. HasName f => String -> Mod f a
long String
"candidate" forall a. Semigroup a => a -> a -> a
<>
forall (f :: * -> *) a. String -> Mod f a
help String
"Upload as a package candidate")