{-# 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 { uoptsSDistOpts :: SDistOpts , uoptsUploadVariant :: UploadVariant -- ^ Says whether to publish the package or upload as a release candidate } data UploadVariant = Publishing -- ^ Publish the package | Candidate -- ^ Create a package candidate -- | Parser for arguments to `stack upload` uploadOptsParser :: Parser UploadOpts uploadOptsParser = UploadOpts <$> sdistOptsParser <*> uploadVariant where uploadVariant = flag Publishing Candidate (long "candidate" <> help "Upload as a package candidate")