aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
blob: 1d685e13ed63e23887784e13c448b565435c914c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{- |
   Module      : Text.Pandoc.Lua.Module.System
   Copyright   : © 2019-2023 Albert Krewinkel
   License     : GNU GPL, version 2 or above

   Maintainer  : Albert Krewinkel <[email protected]>
   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, cputime, 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 = Module
  { moduleName = "pandoc.system"
  , moduleDescription = "system functions"
  , moduleFields =
      [ arch
      , os
      ]
  , moduleFunctions =
      [ cputime `since` makeVersion [3, 1, 1]
      , setName "environment" env
      , setName "get_working_directory" getwd
      , setName "list_directory" ls
      , setName "make_directory" mkdir
      , setName "remove_directory" rmdir
      , setName "with_environment" with_env
      , setName "with_temporary_directory" with_tmpdir
      , setName "with_working_directory" with_wd
      ]
  , moduleOperations = []
  , moduleTypeInitializers = []
  }