git.iko.soy/typeable/pandoc
on master help sign in
Fix compiler warnings on ghc 8.8.
638c2edJohn MacFarlane
src/Text/Pandoc/PDF.hs+12−21
@@ -36,7 +36,7 @@ import System.FilePath
36import System.IO (stdout, hClose)
36import System.IO (stdout, hClose)
37import System.IO.Temp (withSystemTempDirectory, withTempDirectory,
37import System.IO.Temp (withSystemTempDirectory, withTempDirectory,
38 withTempFile)
38 withTempFile)
39−import System.IO.Error (IOError, isDoesNotExistError)
39+import qualified System.IO.Error as IE
40import Text.Pandoc.Definition
40import Text.Pandoc.Definition
41import Text.Pandoc.Error (PandocError (PandocPDFProgramNotFoundError))
41import Text.Pandoc.Error (PandocError (PandocPDFProgramNotFoundError))
42import Text.Pandoc.MIME (getMimeType)
42import Text.Pandoc.MIME (getMimeType)
@@ -307,10 +307,7 @@ runTectonic verbosity program args' tmpDir' source = do
307 showVerboseInfo (Just tmpDir) program programArgs env (UTF8.toStringLazy sourceBL)
307 showVerboseInfo (Just tmpDir) program programArgs env (UTF8.toStringLazy sourceBL)
308 (exit, out) <- liftIO $ E.catch
308 (exit, out) <- liftIO $ E.catch
309 (pipeProcess (Just env) program programArgs sourceBL)
309 (pipeProcess (Just env) program programArgs sourceBL)
310− (\(e :: IOError) -> if isDoesNotExistError e
310+ (handlePDFProgramNotFound program)
311− then E.throwIO $ PandocPDFProgramNotFoundError
312− program
313− else E.throwIO e)
314 when (verbosity >= INFO) $ liftIO $ do
311 when (verbosity >= INFO) $ liftIO $ do
315 putStrLn "[makePDF] Running"
312 putStrLn "[makePDF] Running"
316 BL.hPutStr stdout out
313 BL.hPutStr stdout out
@@ -376,10 +373,7 @@ runTeXProgram verbosity program args runNumber numRuns tmpDir' source = do
376 showVerboseInfo (Just tmpDir) program programArgs env''
373 showVerboseInfo (Just tmpDir) program programArgs env''
377 (exit, out) <- liftIO $ E.catch
374 (exit, out) <- liftIO $ E.catch
378 (pipeProcess (Just env'') program programArgs BL.empty)
375 (pipeProcess (Just env'') program programArgs BL.empty)
379− (\(e :: IOError) -> if isDoesNotExistError e
376+ (handlePDFProgramNotFound program)
380− then E.throwIO $ PandocPDFProgramNotFoundError
381− program
382− else E.throwIO e)
383 when (verbosity >= INFO) $ liftIO $ do
377 when (verbosity >= INFO) $ liftIO $ do
384 putStrLn $ "[makePDF] Run #" ++ show runNumber
378 putStrLn $ "[makePDF] Run #" ++ show runNumber
385 BL.hPutStr stdout out
379 BL.hPutStr stdout out
@@ -404,10 +398,7 @@ generic2pdf verbosity program args source = do
404 (exit, out) <- E.catch
398 (exit, out) <- E.catch
405 (pipeProcess (Just env') program args
399 (pipeProcess (Just env') program args
406 (BL.fromStrict $ UTF8.fromText source))
400 (BL.fromStrict $ UTF8.fromText source))
407− (\(e :: IOError) -> if isDoesNotExistError e
401+ (handlePDFProgramNotFound program)
408− then E.throwIO $
409− PandocPDFProgramNotFoundError program
410− else E.throwIO e)
411 return $ case exit of
402 return $ case exit of
412 ExitFailure _ -> Left out
403 ExitFailure _ -> Left out
413 ExitSuccess -> Right out
404 ExitSuccess -> Right out
@@ -435,10 +426,7 @@ html2pdf verbosity program args source = do
435 showVerboseInfo Nothing program programArgs env'
426 showVerboseInfo Nothing program programArgs env'
436 (exit, out) <- E.catch
427 (exit, out) <- E.catch
437 (pipeProcess (Just env') program programArgs BL.empty)
428 (pipeProcess (Just env') program programArgs BL.empty)
438− (\(e :: IOError) -> if isDoesNotExistError e
429+ (handlePDFProgramNotFound program)
439− then E.throwIO $
440− PandocPDFProgramNotFoundError program
441− else E.throwIO e)
442 when (verbosity >= INFO) $ do
430 when (verbosity >= INFO) $ do
443 BL.hPutStr stdout out
431 BL.hPutStr stdout out
444 putStr "\n"
432 putStr "\n"
@@ -474,10 +462,7 @@ context2pdf verbosity program pdfargs tmpDir source =
474 showVerboseInfo (Just tmpDir) program programArgs env'
462 showVerboseInfo (Just tmpDir) program programArgs env'
475 (exit, out) <- E.catch
463 (exit, out) <- E.catch
476 (pipeProcess (Just env') program programArgs BL.empty)
464 (pipeProcess (Just env') program programArgs BL.empty)
477− (\(e :: IOError) -> if isDoesNotExistError e
465+ (handlePDFProgramNotFound program)
478− then E.throwIO $
479− PandocPDFProgramNotFoundError "context"
480− else E.throwIO e)
481 when (verbosity >= INFO) $ do
466 when (verbosity >= INFO) $ do
482 BL.hPutStr stdout out
467 BL.hPutStr stdout out
483 putStr "\n"
468 putStr "\n"
@@ -517,3 +502,9 @@ showVerboseInfo mbTmpDir program programArgs env source = do
517 putStr "\n"
502 putStr "\n"
518 putStrLn $ "[makePDF] Source:"
503 putStrLn $ "[makePDF] Source:"
519 putStrLn source
504 putStrLn source
505+
506+handlePDFProgramNotFound :: String -> IE.IOError -> IO a
507+handlePDFProgramNotFound program e
508+ | IE.isDoesNotExistError e =
509+ E.throwIO $ PandocPDFProgramNotFoundError program
510+ | otherwise = E.throwIO e