summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2018-01-07 14:06:34 +0100
committerAlbert Krewinkel <albert@zeitkraut.de>2018-01-07 14:06:34 +0100
commitf5dec4bdc12e5ba895458ba117e0966a78b3c790 (patch)
tree05963f97344999ef8be141345e2dcbcd95a30bd6
parent043740d32baa9bf5c58409c2a8ace5a196283fa8 (diff)
Lua: make pandoc-types version available as PANDOC_API_VERSION
The current pandoc-types version is made available to Lua programs in the global PANDOC_API_VERSION. It contains the version as a list of numbers.
-rw-r--r--src/Text/Pandoc/Lua/Init.hs3
-rw-r--r--test/Tests/Lua.hs9
2 files changed, 11 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Lua/Init.hs b/src/Text/Pandoc/Lua/Init.hs
index 5e879114f..f3ee2caf1 100644
--- a/src/Text/Pandoc/Lua/Init.hs
+++ b/src/Text/Pandoc/Lua/Init.hs
@@ -41,6 +41,7 @@ import GHC.IO.Encoding (getForeignEncoding, setForeignEncoding, utf8)
import Paths_pandoc (version)
import Text.Pandoc.Class (PandocIO, getCommonState, getUserDataDir, getMediaBag,
setMediaBag)
+import Text.Pandoc.Definition (pandocTypesVersion)
import Text.Pandoc.Lua.Packages (LuaPackageParams (..),
installPandocPackageSearcher)
import Text.Pandoc.Lua.Util (loadScriptFromDataDir)
@@ -79,5 +80,7 @@ initLuaState luaPkgParams = do
Lua.preloadTextModule "text"
Lua.push (versionBranch version)
Lua.setglobal "PANDOC_VERSION"
+ Lua.push (versionBranch pandocTypesVersion)
+ Lua.setglobal "PANDOC_API_VERSION"
installPandocPackageSearcher luaPkgParams
loadScriptFromDataDir (luaPkgDataDir luaPkgParams) "init.lua"
diff --git a/test/Tests/Lua.hs b/test/Tests/Lua.hs
index 058d5722b..0f6619240 100644
--- a/test/Tests/Lua.hs
+++ b/test/Tests/Lua.hs
@@ -2,6 +2,7 @@
module Tests.Lua ( tests ) where
import Control.Monad (when)
+import Data.Version (Version (versionBranch))
import System.FilePath ((</>))
import Test.Tasty (TestTree, localOption)
import Test.Tasty.HUnit (Assertion, assertEqual, testCase)
@@ -11,7 +12,7 @@ import Text.Pandoc.Builder (bulletList, divWith, doc, doubleQuoted, emph,
header, linebreak, para, plain, rawBlock,
singleQuoted, space, str, strong, (<>))
import Text.Pandoc.Class (runIOorExplode, setUserDataDir)
-import Text.Pandoc.Definition (Block, Inline, Meta, Pandoc)
+import Text.Pandoc.Definition (Block, Inline, Meta, Pandoc, pandocTypesVersion)
import Text.Pandoc.Lua (runLuaFilter, runPandocLua)
import Text.Pandoc.Shared (pandocVersion)
@@ -115,6 +116,12 @@ tests = map (localOption (QuickCheckTests 20))
Lua.call 2 1
Lua.liftIO . assertEqual "pandoc version is wrong" pandocVersion
=<< Lua.peek Lua.stackTop
+
+ , testCase "Pandoc types version is set" . runPandocLua' $ do
+ let versionNums = versionBranch pandocTypesVersion
+ Lua.getglobal "PANDOC_API_VERSION"
+ Lua.liftIO . assertEqual "pandoc version is wrong" versionNums
+ =<< Lua.peek Lua.stackTop
]
assertFilterConversion :: String -> FilePath -> Pandoc -> Pandoc -> Assertion