mdoc-0.2.0.0: src/Mdoc/Data/EnvVar.hs
-- |
--
-- Module : Mdoc.Data.EnvVar
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Data.EnvVar
( EnvVar (..)
) where
import Mdoc.Prelude
import Mdoc.Data.Argument
import Mdoc.Pretty
data EnvVar = EnvVar
{ names :: NonEmpty String
, argument :: Maybe Argument
}
deriving stock (Eq, Ord, Show)
deriving (ToJSON) via (Rendered EnvVar)
instance Pretty EnvVar where
pretty e =
mconcat
$ punctuate comma
$ map ev (init e.names) <> [evArg $ last e.names]
where
-- All but last Ev without arg
ev :: String -> Doc ann
ev n = "Ev" <+> pretty (esc $ pack n)
-- Include Arg, long-style on final Ev only
evArg :: String -> Doc ann
evArg n = maybe (ev n) (("Ev" <+>) . pretty . LongArg n) e.argument