aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine
diff options
context:
space:
mode:
authorAlbert Krewinkel <[email protected]>2025-06-23 12:38:49 +0200
committerJohn MacFarlane <[email protected]>2025-06-30 09:56:08 -0600
commit6b816497710bebfc237946a348e920db75a73406 (patch)
treec50c14037de3b898c317bd7c383be08a74da04c1 /pandoc-lua-engine
parentbffdd13038799866a0823365f0a117d5e3d89fbe (diff)
Lua: add more UTF-8-aware file operations to `pandoc.system`.
Functions that expect UTF-8-encoded filenames should make it easier to write platform-independent scripts, as the encoding of the actual filename depends on the system. Additionally, this also adds a generalized method to run commands, and functions to retrieve XDG directory names. The new functions are `command`, `copy`, `read_file`, `remove`, `rename`, `times`, `write_file`, `xdg`.
Diffstat (limited to 'pandoc-lua-engine')
-rw-r--r--pandoc-lua-engine/pandoc-lua-engine.cabal2
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs14
2 files changed, 13 insertions, 3 deletions
diff --git a/pandoc-lua-engine/pandoc-lua-engine.cabal b/pandoc-lua-engine/pandoc-lua-engine.cabal
index 1ebfba37b..5cd6c570b 100644
--- a/pandoc-lua-engine/pandoc-lua-engine.cabal
+++ b/pandoc-lua-engine/pandoc-lua-engine.cabal
@@ -119,7 +119,7 @@ library
, hslua >= 2.3 && < 2.5
, hslua-module-doclayout>= 1.2 && < 1.3
, hslua-module-path >= 1.1 && < 1.2
- , hslua-module-system >= 1.1 && < 1.2
+ , hslua-module-system >= 1.2 && < 1.3
, hslua-module-text >= 1.1 && < 1.2
, hslua-module-version >= 1.1 && < 1.2
, hslua-module-zip >= 1.1.3 && < 1.2
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
index ef5c63d6a..c6a124166 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
@@ -18,8 +18,10 @@ module Text.Pandoc.Lua.Module.System
import Data.Version (makeVersion)
import HsLua
import HsLua.Module.System
- ( arch, cputime, env, getwd, ls, mkdir, os, rmdir
- , with_env, with_tmpdir, with_wd)
+ ( 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.
@@ -33,14 +35,22 @@ documentedModule = Module
]
, 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 = []