diff options
| author | Albert Krewinkel <[email protected]> | 2025-06-23 12:38:49 +0200 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2025-06-30 09:56:08 -0600 |
| commit | 6b816497710bebfc237946a348e920db75a73406 (patch) | |
| tree | c50c14037de3b898c317bd7c383be08a74da04c1 /pandoc-lua-engine | |
| parent | bffdd13038799866a0823365f0a117d5e3d89fbe (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.cabal | 2 | ||||
| -rw-r--r-- | pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs | 14 |
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 = [] |
