stack-2.15.3: src/Stack/Options/PathParser.hs
{-# LANGUAGE NoImplicitPrelude #-}
-- | Functions to parse command line arguments for Stack's @path@ command.
module Stack.Options.PathParser
( pathParser
) where
import qualified Data.Text as T
import Options.Applicative ( Parser, flag, help, long )
import Stack.Path
( pathsFromConfig, pathsFromEnvConfig, pathsFromRunner )
import Stack.Prelude
-- | Parse command line arguments for Stack's @path@ command.
pathParser :: Parser [Text]
pathParser = mapMaybeA
( \(desc, name) -> flag Nothing (Just name)
( long (T.unpack name)
<> help desc
)
)
paths
where
toDescName (desc, name, _) = (desc, name)
paths =
pathsFromRunner
: map toDescName pathsFromConfig
<> map toDescName pathsFromEnvConfig