module Development.Shake.Version ( ghcVersion , cabalVersion , commonVersion , pandocVersion ) where import Development.Shake -- | Attempt to get version information from a given exectuable. commonVersion :: String -- ^ Executable name -> Action String commonVersion prog = do ~(Stdout out) <- command [] prog ["--version"] pure . last . words . head . lines $ out ghcVersion :: Action String ghcVersion = do ~(Stdout o) <- command [] "ghc" ["--numeric-version"] pure (head (lines o)) cabalVersion :: Action String cabalVersion = commonVersion "cabal" pandocVersion :: Action String pandocVersion = commonVersion "pandoc"