| Copyright | (c) 2015 Adam C. Foltzer | 
|---|---|
| License | BSD3 | 
| Maintainer | acfoltzer@galois.com | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Development.GitRev
Description
Some handy Template Haskell splices for including the current git
 hash and branch in the code of your project. Useful for including
 in panic messages, --version output, or diagnostic info for more
 informative bug reports.
{-# LANGUAGE TemplateHaskell #-}
import Development.GitRev
panic :: String -> a
panic msg = error panicMsg
  where panicMsg =
          concat [ "[panic ", $(gitBranch), "@", $(gitHash)
                 , " (", $(gitCommitDate), ")"
                 , " (", $(gitCommitCount), " commits in HEAD)"
                 , dirty, "] ", msg ]
        dirty | $(gitDirty) = " (uncommitted files present)"
              | otherwise   = ""
main = panic "oh no!"% cabal exec runhaskell Example.hs Example.hs: [panic master@2ae047ba5e4a6f0f3e705a43615363ac006099c1 (Mon Jan 11 11:50:59 2016 -0800) (14 commits in HEAD) (uncommitted files present)] oh no!
Synopsis
- gitBranch :: ExpQ
- gitCommitCount :: ExpQ
- gitCommitDate :: ExpQ
- gitDescribe :: ExpQ
- gitDirty :: ExpQ
- gitDirtyTracked :: ExpQ
- gitHash :: ExpQ
Documentation
Return the branch (or tag) name of the current git commit, or UNKNOWN
 if not in a git repository. For detached heads, this will just be
 HEAD
gitCommitCount :: ExpQ #
Return the number of commits in the current head
gitCommitDate :: ExpQ #
Return the commit date of the current head
gitDescribe :: ExpQ #
Return the long git description for the current git commit, or
 UNKNOWN if not in a git repository.
gitDirtyTracked :: ExpQ #
Return True if there are non-commited changes to tracked files
 present in the repository