{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.GitRev ( GitRev (..) , gitRev , tGitRev ) where import Data.Aeson import Yesod.Core import Yesod.Core.Types import Yesod.GitRev.Data getGitRevR :: Yesod site => SubHandlerFor GitRev site TypedContent getGitRevR = getSubYesod >>= \GitRev{..} -> liftHandler $ selectRep $ do provideRep $ defaultLayout $ do [whamlet|
Hash
#{gitRevHash}
Branch
#{gitRevBranch}
Dirty
#{gitRevDirty}
Commit Date
#{gitRevCommitDate}
Commit Count
#{gitRevCommitCount}
Commit Message
#{gitRevCommitMessage} |] -- TODO: derive & use toJSON provideRep $ return $ object [ "hash" .= gitRevHash , "branch" .= gitRevBranch , "dirty" .= gitRevDirty , "commitDate" .= gitRevCommitDate , "commitCount" .= gitRevCommitCount , "commitMessage" .= gitRevCommitMessage ] instance Yesod site => YesodSubDispatch GitRev site where yesodSubDispatch = $(mkYesodSubDispatch resourcesGitRev)