packages feed

mdoc-0.1.0.0: src/Mdoc/Dump/Env.hs

-- |
--
-- Module      : Mdoc.Dump.Env
-- Copyright   : (c) 2026 Patrick Brisbin
-- License     : AGPL-3
-- Maintainer  : pbrisbin@gmail.com
-- Stability   : experimental
-- Portability : POSIX
module Mdoc.Dump.Env
  ( Env (..)
  , parseEnv

    -- * For man-page generation
  , envInfo
  , envParser
  ) where

import Prelude

import Env
import Mdoc.Pretty (Color (..), readColor)

data Env = Env
  { color :: Maybe Color
  , debug :: Bool
  }

parseEnv :: IO Env
parseEnv = Env.parse (header envInfo) envParser

envInfo :: String
envInfo = "parse and dump an mdoc file"

envParser :: Parser Error Env
envParser =
  Env.prefixed "MDOC_DUMP_"
    $ Env
      <$> optional colorEnv
      <*> switch "DEBUG" (help "Log more verbosely")

colorEnv :: Parser Error Color
colorEnv = var (eitherReader readColor) "COLOR" $ help "When to colorize the output"