diff options
author | Joey Hess <joey@kitenet.net> | 2014-03-02 18:01:07 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-03-02 20:11:58 -0400 |
commit | 66c4abb748f3982ef334a3320e49bfc6647e87d9 (patch) | |
tree | 1785f2bee2250d74a01c5de2e06b8b0b65822f45 /Command/PreCommit.hs | |
parent | e916f8028ce1f90e851166b35f3bcec976aa09b3 (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 'Command/PreCommit.hs')
-rw-r--r-- | Command/PreCommit.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Command/PreCommit.hs b/Command/PreCommit.hs index 07d958de1..fa34ad245 100644 --- a/Command/PreCommit.hs +++ b/Command/PreCommit.hs @@ -13,6 +13,7 @@ import Config import qualified Command.Add import qualified Command.Fix import Annex.Direct +import Annex.Hook import Annex.View import Annex.View.ViewedFile import Logs.View @@ -28,13 +29,16 @@ def = [command "pre-commit" paramPaths seek SectionPlumbing seek :: CommandSeek seek ps = ifM isDirect - -- update direct mode mappings for committed files - ( withWords startDirect ps + ( do + -- update direct mode mappings for committed files + withWords startDirect ps + runAnnexHook preCommitAnnexHook , do -- fix symlinks to files being committed withFilesToBeCommitted (whenAnnexed Command.Fix.start) ps -- inject unlocked files into the annex withFilesUnlockedToBeCommitted startIndirect ps + runAnnexHook preCommitAnnexHook -- committing changes to a view updates metadata mv <- currentView case mv of @@ -43,6 +47,7 @@ seek ps = ifM isDirect (addViewMetaData v) (removeViewMetaData v) ) + startIndirect :: FilePath -> CommandStart startIndirect f = next $ do |