diff options
| author | Albert Krewinkel <[email protected]> | 2025-07-23 18:57:21 +0200 |
|---|---|---|
| committer | Albert Krewinkel <[email protected]> | 2025-07-23 19:31:03 +0200 |
| commit | 01a305af58b2b91179266e3463e07db94fcc11f0 (patch) | |
| tree | 5dbf33ad51cf1864709152bdc526e3d129a718b1 /pandoc-lua-engine/src | |
| parent | b6837264478b264d9883097856fb68047e2ccb8f (diff) | |
Lua: add function `pandoc.path.exists`.
The functions allows to check the existence of file-system objects.
Diffstat (limited to 'pandoc-lua-engine/src')
| -rw-r--r-- | pandoc-lua-engine/src/Text/Pandoc/Lua/Module.hs | 5 | ||||
| -rw-r--r-- | pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Path.hs | 50 |
2 files changed, 52 insertions, 3 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module.hs index 5d2e1040a..9966c4a45 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module.hs @@ -23,7 +23,6 @@ import qualified Data.ByteString.Char8 as Char8 import qualified Lua.LPeg as LPeg import qualified HsLua.Aeson import qualified HsLua.Module.DocLayout as Module.Layout -import qualified HsLua.Module.Path as Module.Path import qualified HsLua.Module.Zip as Module.Zip import qualified Text.Pandoc.Lua.Module.CLI as Pandoc.CLI import qualified Text.Pandoc.Lua.Module.Format as Pandoc.Format @@ -32,6 +31,7 @@ import qualified Text.Pandoc.Lua.Module.JSON as Pandoc.JSON import qualified Text.Pandoc.Lua.Module.Log as Pandoc.Log import qualified Text.Pandoc.Lua.Module.MediaBag as Pandoc.MediaBag import qualified Text.Pandoc.Lua.Module.Pandoc as Module.Pandoc +import qualified Text.Pandoc.Lua.Module.Path as Pandoc.Path import qualified Text.Pandoc.Lua.Module.Scaffolding as Pandoc.Scaffolding import qualified Text.Pandoc.Lua.Module.Structure as Pandoc.Structure import qualified Text.Pandoc.Lua.Module.System as Pandoc.System @@ -84,6 +84,7 @@ submodules = , Pandoc.JSON.documentedModule , Pandoc.Log.documentedModule , Pandoc.MediaBag.documentedModule + , Pandoc.Path.documentedModule , Pandoc.Scaffolding.documentedModule , Pandoc.Structure.documentedModule , Pandoc.System.documentedModule @@ -95,8 +96,6 @@ submodules = `allSince` [2,18]) `functionsSince` ["bold", "italic", "underlined", "strikeout", "fg", "bg"]) [3, 4, 1] - , Module.Path.documentedModule { moduleName = "pandoc.path" } - `allSince` [2,12] , Module.Zip.documentedModule { moduleName = "pandoc.zip" } `allSince` [3,0] ] diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Path.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Path.hs new file mode 100644 index 000000000..1d2169976 --- /dev/null +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Path.hs @@ -0,0 +1,50 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeApplications #-} +{- | + Module : Text.Pandoc.Lua.Module.Path + Copyright : © 2019-2024 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.Path + ( documentedModule + ) where + +import Data.Version (makeVersion) +import HsLua +import qualified HsLua.Module.Path as MPath +import qualified HsLua.Module.System as MSystem + +-- | Push the pandoc.system module on the Lua stack. +documentedModule :: forall e. LuaError e => Module e +documentedModule = Module + { moduleName = "pandoc.path" + , moduleDescription = moduleDescription @e MPath.documentedModule + , moduleFields = + [ MPath.separator + , MPath.search_path_separator + ] + , moduleFunctions = + [ MPath.directory `since` v[2,12] + , MSystem.exists `since` v[3,7,1] + , MPath.filename `since` v[2,12] + , MPath.is_absolute `since` v[2,12] + , MPath.is_relative `since` v[2,12] + , MPath.join `since` v[2,12] + , MPath.make_relative `since` v[2,12] + , MPath.normalize `since` v[2,12] + , MPath.split `since` v[2,12] + , MPath.split_extension `since` v[2,12] + , MPath.split_search_path `since` v[2,12] + , MPath.treat_strings_as_paths `since` v[2,12] + ] + , moduleOperations = [] + , moduleTypeInitializers = [] + } + where + v = makeVersion |
