{-# LANGUAGE TemplateHaskell #-} module Development.Shake.Version ( ghcVersion , cabalVersion , commonVersion , pandocVersion ) where import Development.Shake import Development.Shake.TH ghcVersion :: Action String ghcVersion :: Action String ghcVersion = do ~(Stdout String o) <- [CmdOption] -> String -> [String] -> Action (Stdout String) forall r. (Partial, CmdResult r) => [CmdOption] -> String -> [String] -> Action r command [CmdOption] forall a. Monoid a => a mempty String "ghc" [String "--numeric-version"] String -> Action String forall (f :: * -> *) a. Applicative f => a -> f a pure ([String] -> String forall a. [a] -> a head (String -> [String] lines String o)) $(mkVersions ["pandoc", "cabal"])