aboutsummaryrefslogtreecommitdiff
path: root/Annex.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-03-02 18:01:07 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-03-02 20:11:58 -0400
commit66c4abb748f3982ef334a3320e49bfc6647e87d9 (patch)
tree1785f2bee2250d74a01c5de2e06b8b0b65822f45 /Annex.hs
parente916f8028ce1f90e851166b35f3bcec976aa09b3 (diff)
pre-commit-annex hook script to automatically extract metadata from lots of types of files
Using the extract(1) program to do the heavy lifting. Decided to make git-annex run pre-commit-annex when committing. Since git-annex pre-commit also runs it, it'll be run when git commit is run too, via the pre-commit hook. This basically gives back the pre-commit hook that git-annex took away. The implementation avoids repeatedly looking for the hook script when the assistant is running and committing repeatedly; only checks if the hook is available once. To make the script simpler, made git-annex metadata -s field?=value only set a field when it's not already got a value. This commit was sponsored by bak.
Diffstat (limited to 'Annex.hs')
-rw-r--r--Annex.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/Annex.hs b/Annex.hs
index e3bd95c33..b427efd59 100644
--- a/Annex.hs
+++ b/Annex.hs
@@ -44,6 +44,7 @@ import Git.CatFile
import Git.CheckAttr
import Git.CheckIgnore
import Git.SharedRepository
+import qualified Git.Hook
import qualified Git.Queue
import Types.Key
import Types.Backend
@@ -118,6 +119,7 @@ data AnnexState = AnnexState
, errcounter :: Integer
, unusedkeys :: Maybe (S.Set Key)
, quviversion :: Maybe QuviVersion
+ , existinghooks :: M.Map Git.Hook.Hook Bool
}
newState :: GitConfig -> Git.Repo -> AnnexState
@@ -157,6 +159,7 @@ newState c r = AnnexState
, errcounter = 0
, unusedkeys = Nothing
, quviversion = Nothing
+ , existinghooks = M.empty
}
{- Makes an Annex state object for the specified git repo.