{-# 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"])