module Yesod.GitRev.Data where
import Development.GitRev (gitHash, gitBranch, gitDirty)
import Language.Haskell.TH.Syntax (Lift(lift), Q, TExp, Exp, unsafeTExpCoerce)
import Yesod.Core hiding (lift)
data GitRev = GitRev
{ gitRevHash :: String
, gitRevBranch :: String
, gitRevDirty :: Bool
}
mkYesodSubData "GitRev" [parseRoutes|
/ GitRevR GET
|]
instance Lift GitRev where
lift GitRev{..} =
[|
GitRev
{ gitRevHash = $(lift gitRevHash)
, gitRevBranch = $(lift gitRevBranch)
, gitRevDirty = $(lift gitRevDirty)
}
|]
tGitRev :: Q (TExp GitRev)
tGitRev = unsafeTExpCoerce gitRev
gitRev :: Q Exp
gitRev =
[|
GitRev
{ gitRevHash = $gitHash
, gitRevBranch = $gitBranch
, gitRevDirty = $gitDirty
}
|]