1{-# LANGUAGE NoImplicitPrelude #-} 2module Stack.Options.UploadParser 3 ( UploadOpts(..) 4 , UploadVariant(..) 5 , uploadOptsParser 6 ) where 7 8import Options.Applicative 9import Stack.Options.SDistParser (sdistOptsParser) 10import Stack.Prelude 11import Stack.SDist (SDistOpts(..)) 12 13data UploadOpts = UploadOpts 14 { uoptsSDistOpts :: SDistOpts 15 , uoptsUploadVariant :: UploadVariant 16 -- ^ Says whether to publish the package or upload as a release candidate 17 } 18 19data UploadVariant 20 = Publishing 21 -- ^ Publish the package 22 | Candidate 23 -- ^ Create a package candidate 24 25-- | Parser for arguments to `stack upload` 26uploadOptsParser :: Parser UploadOpts 27uploadOptsParser = 28 UploadOpts 29 <$> sdistOptsParser 30 <*> uploadVariant 31 where 32 uploadVariant = 33 flag Publishing Candidate 34 (long "candidate" <> 35 help "Upload as a package candidate") 36