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

   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
   Stability   : alpha

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

import HsLua
import HsLua.Module.System
  (arch, env, getwd, ls, mkdir, os, rmdir, with_env, with_tmpdir, with_wd)

-- | Push the pandoc.system module on the Lua stack.
documentedModule :: LuaError e => Module e
documentedModule :: forall e. LuaError e => Module e
documentedModule = Module
  { moduleName :: Name
moduleName = Name
"pandoc.system"
  , moduleDescription :: Text
moduleDescription = Text
"system functions"
  , moduleFields :: [Field e]
moduleFields =
      [ forall e. Field e
arch
      , forall e. Field e
os
      ]
  , moduleFunctions :: [DocumentedFunction e]
moduleFunctions =
      [ forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"environment" forall e. LuaError e => DocumentedFunction e
env
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"get_working_directory" forall e. LuaError e => DocumentedFunction e
getwd
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"list_directory" forall e. LuaError e => DocumentedFunction e
ls
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"make_directory" forall e. LuaError e => DocumentedFunction e
mkdir
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"remove_directory" forall e. LuaError e => DocumentedFunction e
rmdir
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"with_environment" forall e. LuaError e => DocumentedFunction e
with_env
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"with_temporary_directory" forall e. LuaError e => DocumentedFunction e
with_tmpdir
      , forall e. Name -> DocumentedFunction e -> DocumentedFunction e
setName Name
"with_working_directory" forall e. LuaError e => DocumentedFunction e
with_wd
      ]
  , moduleOperations :: [(Operation, DocumentedFunction e)]
moduleOperations = []
  }