From ba39f993f52ae9d191a0bd80512a1f0278d3c35d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 9 Dec 2015 15:24:32 -0400 Subject: [PATCH] avoid clean filter trying to annex a pointer file --- Command/Smudge.hs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Command/Smudge.hs b/Command/Smudge.hs index 7462963212..9ce95d4ef2 100644 --- a/Command/Smudge.hs +++ b/Command/Smudge.hs @@ -54,22 +54,23 @@ smudge file = do =<< catchMaybeIO (B.readFile content) stop --- Clean filter decides if a file should be stored in the annex, and --- outputs a pointer to its injested content. +-- Clean filter is fed file content on stdin, decides if a file +-- should be stored in the annex, and outputs a pointer to its +-- injested content. clean :: FilePath -> CommandStart clean file = do - ifM (shouldAnnex file) - ( do - k <- ingest file - updateAssociatedFiles k file - liftIO $ emitPointer k - , liftIO cat - ) + b <- liftIO $ B.hGetContents stdin + if isJust (parseLinkOrPointer b) + then liftIO $ B.hPut stdout b + else ifM (shouldAnnex file) + ( do + k <- ingest file + updateAssociatedFiles k file + liftIO $ emitPointer k + , liftIO $ B.hPut stdout b + ) stop -cat :: IO () -cat = B.hGetContents stdin >>= B.hPut stdout - shouldAnnex :: FilePath -> Annex Bool shouldAnnex file = do matcher <- largeFilesMatcher -- 2.30.2