summaryrefslogtreecommitdiff
path: root/Git/CatFile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Git/CatFile.hs')
-rw-r--r--Git/CatFile.hs50
1 files changed, 25 insertions, 25 deletions
diff --git a/Git/CatFile.hs b/Git/CatFile.hs
index cd531e68f..704724211 100644
--- a/Git/CatFile.hs
+++ b/Git/CatFile.hs
@@ -48,28 +48,28 @@ catObject h object = maybe L.empty fst <$> catObjectDetails h object
{- Gets both the content of an object, and its Sha. -}
catObjectDetails :: CatFileHandle -> Ref -> IO (Maybe (L.ByteString, Sha))
catObjectDetails h object = CoProcess.query h send receive
- where
- send to = do
- fileEncoding to
- hPutStrLn to $ show object
- receive from = do
- fileEncoding from
- header <- hGetLine from
- case words header of
- [sha, objtype, size]
- | length sha == shaSize &&
- isJust (readObjectType objtype) ->
- case reads size of
- [(bytes, "")] -> readcontent bytes from sha
- _ -> dne
- | otherwise -> dne
- _
- | header == show object ++ " missing" -> dne
- | otherwise -> error $ "unknown response from git cat-file " ++ show (header, object)
- readcontent bytes from sha = do
- content <- S.hGet from bytes
- c <- hGetChar from
- when (c /= '\n') $
- error "missing newline from git cat-file"
- return $ Just (L.fromChunks [content], Ref sha)
- dne = return Nothing
+ where
+ send to = do
+ fileEncoding to
+ hPutStrLn to $ show object
+ receive from = do
+ fileEncoding from
+ header <- hGetLine from
+ case words header of
+ [sha, objtype, size]
+ | length sha == shaSize &&
+ isJust (readObjectType objtype) ->
+ case reads size of
+ [(bytes, "")] -> readcontent bytes from sha
+ _ -> dne
+ | otherwise -> dne
+ _
+ | header == show object ++ " missing" -> dne
+ | otherwise -> error $ "unknown response from git cat-file " ++ show (header, object)
+ readcontent bytes from sha = do
+ content <- S.hGet from bytes
+ c <- hGetChar from
+ when (c /= '\n') $
+ error "missing newline from git cat-file"
+ return $ Just (L.fromChunks [content], Ref sha)
+ dne = return Nothing