From 6b816497710bebfc237946a348e920db75a73406 Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Mon, 23 Jun 2025 12:38:49 +0200 Subject: 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`. --- pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs') 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 = [] -- cgit v1.2.3