diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2015-07-06 13:38:46 -0700 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2015-07-06 13:38:46 -0700 | 
| commit | e042f697a4557b21789cb7404745746aea2535b4 (patch) | |
| tree | a2d5c734051be0937b2d0ac24d01ef41ded1bcda | |
| parent | 48cd7747149dcb7d4149fb4524066afe380a8567 (diff) | |
| download | pandoc-e042f697a4557b21789cb7404745746aea2535b4.tar.gz | |
Setup.hs:  better version detection in older hsb2hs.
If it returns an error with input `--version`, recover
gracefully.
| -rw-r--r-- | Setup.hs | 18 | 
1 files changed, 11 insertions, 7 deletions
| @@ -32,6 +32,7 @@ import Data.Version  import System.Process (readProcess)  import Text.ParserCombinators.ReadP (readP_to_S, skipSpaces, eof)  import Control.Monad (when) +import qualified Control.Exception as E  main :: IO ()  main = defaultMainWithHooks $ simpleUserHooks { @@ -44,13 +45,16 @@ main = defaultMainWithHooks $ simpleUserHooks {  findHsb2hsVersion :: Verbosity -> FilePath -> IO (Maybe Version)  findHsb2hsVersion verb fp = do -  outp <- readProcess fp ["--version"] "" -  case readP_to_S (do v <- parseVersion -                      skipSpaces -                      eof -                      return v) outp of -       ((v,""):_) -> return (Just v) -       _          -> return Nothing +  let handleExitFailure :: IOError -> IO (Maybe Version) +      handleExitFailure _ = return Nothing +  E.handle handleExitFailure $ do +    outp <- readProcess fp ["--version"] "" +    case readP_to_S (do v <- parseVersion +                        skipSpaces +                        eof +                        return v) outp of +         ((v,""):_) -> return (Just v) +         _          -> return Nothing  ppBlobSuffixHandler :: PPSuffixHandler  ppBlobSuffixHandler = ("hsb", \_ lbi -> | 
