aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2016-05-09 20:52:20 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2016-05-09 20:52:20 -0700
commit285bbf61cf2b21278792e48aee7c25fa0ee62faa (patch)
treecb413c2be0d7d130b5398f3c41517d1eba5d3572
parentefd02db689d2815d9811d7841778a22ca4976783 (diff)
downloadpandoc-285bbf61cf2b21278792e48aee7c25fa0ee62faa.tar.gz
New method for checking for presence of tex program.
Now instead of using `findExecutable`, which has limitations on Windows, we just do `progname --version` and see if it returns successfully. Closes #2903.
-rw-r--r--pandoc.cabal3
-rw-r--r--pandoc.hs5
2 files changed, 5 insertions, 3 deletions
diff --git a/pandoc.cabal b/pandoc.cabal
index e8252293b..677fb31ac 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -424,7 +424,8 @@ Executable pandoc
aeson >= 0.7.0.5 && < 0.12,
yaml >= 0.8.8.2 && < 0.9,
containers >= 0.1 && < 0.6,
- HTTP >= 4000.0.5 && < 4000.4
+ HTTP >= 4000.0.5 && < 4000.4,
+ process >= 1.0 && < 1.5
if flag(network-uri)
Build-Depends: network-uri >= 2.6 && < 2.7, network >= 2.6
else
diff --git a/pandoc.hs b/pandoc.hs
index b686dbb90..56fa2c05f 100644
--- a/pandoc.hs
+++ b/pandoc.hs
@@ -52,6 +52,7 @@ import Data.Char ( toLower, toUpper )
import Data.List ( delete, intercalate, isPrefixOf, isSuffixOf, sort )
import System.Directory ( getAppUserDataDirectory, findExecutable,
doesFileExist, Permissions(..), getPermissions )
+import System.Process ( readProcessWithExitCode )
import System.IO ( stdout, stderr )
import System.IO.Error ( isDoesNotExistError )
import qualified Control.Exception as E
@@ -1401,8 +1402,8 @@ convertWithOpts opts args = do
_ | html5Output -> "wkhtmltopdf"
_ -> latexEngine
-- check for pdf creating program
- mbPdfProg <- findExecutable pdfprog
- when (isNothing mbPdfProg) $
+ (ec,_,_) <- readProcessWithExitCode pdfprog ["--version"] ""
+ when (ec /= ExitSuccess) $
err 41 $ pdfprog ++ " not found. " ++
pdfprog ++ " is needed for pdf output."