summaryrefslogtreecommitdiff
path: root/Command/PreCommit.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/PreCommit.hs')
-rw-r--r--Command/PreCommit.hs20
1 files changed, 11 insertions, 9 deletions
diff --git a/Command/PreCommit.hs b/Command/PreCommit.hs
index eed2f491c..6644f6ffa 100644
--- a/Command/PreCommit.hs
+++ b/Command/PreCommit.hs
@@ -9,6 +9,7 @@ module Command.PreCommit where
import Common.Annex
import Command
+import Config
import qualified Command.Add
import qualified Command.Fix
import Annex.Direct
@@ -17,19 +18,20 @@ def :: [Command]
def = [command "pre-commit" paramPaths seek SectionPlumbing
"run by git pre-commit hook"]
-seek :: [CommandSeek]
-seek =
- -- fix symlinks to files being committed
- [ whenNotDirect $ withFilesToBeCommitted $ whenAnnexed Command.Fix.start
- -- inject unlocked files into the annex
- , whenNotDirect $ withFilesUnlockedToBeCommitted startIndirect
+seek :: CommandSeek
+seek ps = ifM isDirect
-- update direct mode mappings for committed files
- , whenDirect $ withWords startDirect
- ]
+ ( withWords startDirect ps
+ , do
+ -- fix symlinks to files being committed
+ withFilesToBeCommitted (whenAnnexed Command.Fix.start) ps
+ -- inject unlocked files into the annex
+ withFilesUnlockedToBeCommitted startIndirect ps
+ )
startIndirect :: FilePath -> CommandStart
startIndirect file = next $ do
- unlessM (doCommand $ Command.Add.start file) $
+ unlessM (callCommand $ Command.Add.start file) $
error $ "failed to add " ++ file ++ "; canceling commit"
next $ return True