stack-2.9.3: src/Stack/Options/CleanParser.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Stack.Options.CleanParser
( cleanOptsParser
) where
import Options.Applicative ( Parser, flag', help, long, metavar )
import Stack.Clean ( CleanCommand (..), CleanOpts (..) )
import Stack.Prelude
import Stack.Types.PackageName ( packageNameArgument )
-- | Command-line parser for the clean command.
cleanOptsParser :: CleanCommand -> Parser CleanOpts
cleanOptsParser Clean = CleanShallow
<$> packages
<|> doFullClean
where
packages = many (packageNameArgument
( metavar "PACKAGE"
<> help "If none specified, clean all project packages"
))
doFullClean = flag' CleanFull
( long "full"
<> help "Delete the project's Stack working directories (.stack-work by \
\default)."
)
cleanOptsParser Purge = pure CleanFull