mdoc-0.1.0.0: src/Mdoc/Gen/EnvVar.hs
-- |
--
-- Module : Mdoc.Gen.EnvVar
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Gen.EnvVar
( EnvVar (..)
, renderEnv
) where
import Mdoc.Prelude
import Data.List (intercalate)
import Mdoc.Gen.Argument
import Mdoc.MacroArg
import Mdoc.MacroName
data EnvVar = EnvVar
{ names :: NonEmpty String
, argument :: Maybe Argument
}
deriving stock (Eq, Show)
renderEnv :: EnvVar -> [MacroArg]
renderEnv e = intercalate [Bare ","] $ map ev (init e.names) <> [ev_ $ last e.names]
where
-- All but last Ev without arg
ev n = [Callable Ev, Bare $ esc $ pack n]
-- Include Arg, long-style on final Ev only
ev_ n = case e.argument of
Nothing -> ev n
Just argument -> Callable Ev : renderArgumentForLong n argument