packages feed

pandoc-lua-engine-0.5: src/Text/Pandoc/Lua/Module/System.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications    #-}
{- |
   Module      : Text.Pandoc.Lua.Module.System
   Copyright   : © 2019-2024 Albert Krewinkel
   License     : GNU GPL, version 2 or above

   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
   Stability   : alpha

Pandoc's system Lua module.
-}
module Text.Pandoc.Lua.Module.System
  ( documentedModule
  ) where

import Data.Version (makeVersion)
import HsLua
import HsLua.Module.System
  ( arch, cmd, cp, cputime, env, getwd, ls, mkdir, os, read_file
  , rename, rm, rmdir, times, with_env, with_tmpdir, with_wd
  , write_file, xdg
  )
import qualified HsLua.Module.System as MSys

-- | Push the pandoc.system module on the Lua stack.
documentedModule :: forall e. LuaError e => Module e
documentedModule = Module
  { moduleName = "pandoc.system"
  , moduleDescription = moduleDescription @e MSys.documentedModule
  , moduleFields =
      [ arch
      , os
      ]
  , moduleFunctions =
      [ cputime                                        `since` v[3,1,1]
      , setName "command" cmd                          `since` v[3,7,1]
      , setName "copy" cp                              `since` v[3,7,1]
      , setName "environment" env                      `since` v[2,7,3]
      , setName "get_working_directory" getwd          `since` v[2,8]
      , setName "list_directory" ls                    `since` v[2,19]
      , setName "make_directory" mkdir                 `since` v[2,19]
      , read_file                                      `since` v[3,7,1]
      , rename                                         `since` v[3,7,1]
      , setName "remove" rm                            `since` v[3,7,1]
      , setName "remove_directory" rmdir               `since` v[2,19]
      , times                                          `since` v[3,7,1]
      , setName "with_environment" with_env            `since` v[2,7,3]
      , setName "with_temporary_directory" with_tmpdir `since` v[2,8]
      , setName "with_working_directory" with_wd       `since` v[2,7,3]
      , write_file                                     `since` v[3,7,1]
      , xdg                                            `since` v[3,7,1]
      ]
  , moduleOperations = []
  , moduleTypeInitializers = []
  }
 where
  v = makeVersion