module IDE.Utils.VersionUtils (
getHaddockVersion
, getGhcVersion
) where
import IDE.Utils.Tool (toolline, runTool')
import Data.Char (ord)
import qualified Data.List as List (init)
import System.Log.Logger (debugM)
getGhcVersion :: IO FilePath
getGhcVersion = catch (do
(!output,_) <- runTool' "ghc" ["--numeric-version"] Nothing
let vers = toolline $ head output
vers2 = if ord (last vers) == 13
then List.init vers
else vers
debugM "leksah-server" $ "Got GHC Version " ++ vers2
return vers2
) $ \ _ -> error ("FileUtils>>getGhcVersion failed")
getHaddockVersion :: IO String
getHaddockVersion = catch (do
(!output,_) <- runTool' "haddock" ["--version"] Nothing
let vers = toolline $ head output
vers2 = if ord (last vers) == 13
then List.init vers
else vers
return vers2
) $ \ _ -> error ("FileUtils>>getHaddockVersion failed")