cleanup
This commit is contained in:
parent
7e17151e69
commit
cac130b205
3 changed files with 18 additions and 23 deletions
|
@ -25,12 +25,12 @@ import qualified Utility.CoProcess as CoProcess
|
|||
|
||||
type CatFileHandle = CoProcess.CoProcessHandle
|
||||
|
||||
{- Starts git cat-file running in batch mode in a repo and returns a handle. -}
|
||||
catFileStart :: Repo -> IO CatFileHandle
|
||||
catFileStart repo = CoProcess.start "git" $ toCommand $
|
||||
gitCommandLine [Param "cat-file", Param "--batch"] repo
|
||||
catFileStart = CoProcess.start "git" . toCommand . gitCommandLine
|
||||
[ Param "cat-file"
|
||||
, Param "--batch"
|
||||
]
|
||||
|
||||
{- Stops git cat-file. -}
|
||||
catFileStop :: CatFileHandle -> IO ()
|
||||
catFileStop = CoProcess.stop
|
||||
|
||||
|
|
|
@ -18,13 +18,11 @@ type CheckAttrHandle = (CoProcess.CoProcessHandle, [Attr], String)
|
|||
type Attr = String
|
||||
|
||||
{- Starts git check-attr running to look up the specified gitattributes
|
||||
- values and return a handle. -}
|
||||
- values and returns a handle. -}
|
||||
checkAttrStart :: [Attr] -> Repo -> IO CheckAttrHandle
|
||||
checkAttrStart attrs repo = do
|
||||
cwd <- getCurrentDirectory
|
||||
h <- CoProcess.start "git" $ toCommand $
|
||||
gitCommandLine params repo
|
||||
CoProcess.query h fileEncoding fileEncoding
|
||||
h <- CoProcess.start "git" $ toCommand $ gitCommandLine params repo
|
||||
return (h, attrs, cwd)
|
||||
where
|
||||
params =
|
||||
|
@ -33,7 +31,6 @@ checkAttrStart attrs repo = do
|
|||
] ++ map Param attrs ++
|
||||
[ Param "--" ]
|
||||
|
||||
{- Stops git check-attr. -}
|
||||
checkAttrStop :: CheckAttrHandle -> IO ()
|
||||
checkAttrStop (h, _, _) = CoProcess.stop h
|
||||
|
||||
|
@ -46,8 +43,11 @@ checkAttr (h, attrs, cwd) want file = do
|
|||
[v] -> return v
|
||||
_ -> error $ "unable to determine " ++ want ++ " attribute of " ++ file
|
||||
where
|
||||
send to = hPutStr to $ file' ++ "\0"
|
||||
send to = do
|
||||
fileEncoding to
|
||||
hPutStr to $ file' ++ "\0"
|
||||
receive from = forM attrs $ \attr -> do
|
||||
fileEncoding from
|
||||
l <- hGetLine from
|
||||
return (attr, attrvalue attr l)
|
||||
{- Before git 1.7.7, git check-attr worked best with
|
||||
|
|
|
@ -14,20 +14,13 @@ import qualified Utility.CoProcess as CoProcess
|
|||
|
||||
type HashObjectHandle = CoProcess.CoProcessHandle
|
||||
|
||||
{- Starts git hash-object and returns a handle. -}
|
||||
hashObjectStart :: Repo -> IO HashObjectHandle
|
||||
hashObjectStart repo = do
|
||||
h <- CoProcess.start "git" $ toCommand $ gitCommandLine params repo
|
||||
CoProcess.query h fileEncoding (const $ return ())
|
||||
return h
|
||||
where
|
||||
params =
|
||||
[ Param "hash-object"
|
||||
, Param "-w"
|
||||
, Param "--stdin-paths"
|
||||
]
|
||||
hashObjectStart = CoProcess.start "git" . toCommand . gitCommandLine
|
||||
[ Param "hash-object"
|
||||
, Param "-w"
|
||||
, Param "--stdin-paths"
|
||||
]
|
||||
|
||||
{- Stops git hash-object. -}
|
||||
hashObjectStop :: HashObjectHandle -> IO ()
|
||||
hashObjectStop = CoProcess.stop
|
||||
|
||||
|
@ -35,5 +28,7 @@ hashObjectStop = CoProcess.stop
|
|||
hashFile :: HashObjectHandle -> FilePath -> IO Sha
|
||||
hashFile h file = CoProcess.query h send receive
|
||||
where
|
||||
send to = hPutStrLn to file
|
||||
send to = do
|
||||
fileEncoding to
|
||||
hPutStrLn to file
|
||||
receive from = Ref <$> hGetLine from
|
||||
|
|
Loading…
Reference in a new issue