mirror of
https://github.com/github/semantic.git
synced 2024-12-23 14:54:16 +03:00
Abstract out running a git command with alternate object dirs.
This commit is contained in:
parent
5f1f82fb33
commit
c9175254e7
@ -136,10 +136,7 @@ runReadFile path = do
|
|||||||
return (flip sourceBlob path <$> source)
|
return (flip sourceBlob path <$> source)
|
||||||
|
|
||||||
runReadFilesAtSHAs :: FilePath -> [FilePath] -> [FilePath] -> Both String -> IO [(FilePath, Both (Maybe SourceBlob))]
|
runReadFilesAtSHAs :: FilePath -> [FilePath] -> [FilePath] -> Both String -> IO [(FilePath, Both (Maybe SourceBlob))]
|
||||||
runReadFilesAtSHAs gitDir alternateObjectDirs paths shas = withRepository lgFactory gitDir $ do
|
runReadFilesAtSHAs gitDir alternateObjectDirs paths shas = runGit $ do
|
||||||
repo <- getRepository
|
|
||||||
for_ alternateObjectDirs (liftIO . odbBackendAddPath repo . toS)
|
|
||||||
|
|
||||||
liftIO $ traceEventIO ("START readFilesAtSHAs: " <> show paths)
|
liftIO $ traceEventIO ("START readFilesAtSHAs: " <> show paths)
|
||||||
|
|
||||||
trees <- traverse treeForSha shas
|
trees <- traverse treeForSha shas
|
||||||
@ -172,6 +169,11 @@ runReadFilesAtSHAs gitDir alternateObjectDirs paths shas = withRepository lgFact
|
|||||||
blobEntries <- reportGitmon "ls-tree" $ treeBlobEntries tree
|
blobEntries <- reportGitmon "ls-tree" $ treeBlobEntries tree
|
||||||
return $! fmap (\ (p, _, _) -> toS p) blobEntries
|
return $! fmap (\ (p, _, _) -> toS p) blobEntries
|
||||||
|
|
||||||
|
runGit action = withRepository lgFactory gitDir $ do
|
||||||
|
repo <- getRepository
|
||||||
|
for_ alternateObjectDirs (liftIO . odbBackendAddPath repo . toS)
|
||||||
|
action
|
||||||
|
|
||||||
toSourceKind (Git.PlainBlob mode) = Source.PlainBlob mode
|
toSourceKind (Git.PlainBlob mode) = Source.PlainBlob mode
|
||||||
toSourceKind (Git.ExecutableBlob mode) = Source.ExecutableBlob mode
|
toSourceKind (Git.ExecutableBlob mode) = Source.ExecutableBlob mode
|
||||||
toSourceKind (Git.SymlinkBlob mode) = Source.SymlinkBlob mode
|
toSourceKind (Git.SymlinkBlob mode) = Source.SymlinkBlob mode
|
||||||
|
Loading…
Reference in New Issue
Block a user