mdoc-0.1.0.0: src/Mdoc/UpdateMdocdate.hs
-- |
--
-- Module : Mdoc.UpdateMdocdate
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.UpdateMdocdate
( updateMdocdate
, updateMdocdateTo
) where
import Mdoc.Prelude
import Data.Time (Day, getCurrentTime, utctDay)
import Mdoc (Mdoc)
import Mdoc.MacroArg (_Mdocdate)
import Mdoc.MdocLine (_Dd)
import Mdoc.Optics
updateMdocdate :: MonadIO m => Mdoc -> m Mdoc
updateMdocdate mdoc = do
d <- liftIO $ utctDay <$> getCurrentTime
pure $ updateMdocdateTo d mdoc
updateMdocdateTo :: Day -> Mdoc -> Mdoc
updateMdocdateTo d = field @"lines" % traversed % _Dd % traversed % _Mdocdate ?~ d