harg-0.4.2.1: src/Options/Harg/Pretty.hs
module Options.Harg.Pretty
( ppHelp,
ppSourceRunErrors,
)
where
import Control.Applicative ((<|>))
import Data.List (intercalate)
import Data.Maybe (fromMaybe)
import Options.Harg.Sources.Types
import Options.Harg.Types
ppHelp ::
Opt a ->
Maybe String
ppHelp Opt {..} =
(<> ppEnvVar _optEnvVar) <$> _optHelp
ppSourceRunErrors ::
[SourceRunError] ->
String
ppSourceRunErrors =
intercalate "\n\n"
. map ppSourceRunError
where
ppSourceRunError :: SourceRunError -> String
ppSourceRunError (SourceRunError Nothing src desc) =
"error: "
<> desc
<> "\n\t"
<> ppSource src
ppSourceRunError (SourceRunError (Just (SomeOpt opt)) src desc) =
"option "
<> optId opt
<> ": "
<> desc
<> "\n\t"
<> ppSource src
<> ppEnvVar (_optEnvVar opt)
optId Opt {..} =
fromMaybe "<no name available>" $
_optLong <|> (pure <$> _optShort) <|> _optMetavar
ppSource ::
String ->
String
ppSource s =
" (source: " <> s <> ")"
ppEnvVar ::
Maybe String ->
String
ppEnvVar =
maybe "" $ \s -> " (env var: " <> s <> ")"