aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/History/PartialCommitInfo.hs9
-rw-r--r--app/Issue.hs12
2 files changed, 7 insertions, 14 deletions
diff --git a/app/History/PartialCommitInfo.hs b/app/History/PartialCommitInfo.hs
index 5272057..2337ef7 100644
--- a/app/History/PartialCommitInfo.hs
+++ b/app/History/PartialCommitInfo.hs
@@ -15,7 +15,8 @@ import GHC.Generics (Generic)
import Git qualified
import History.Cache (cached)
import History.CommitHash (CommitHash (..))
-import Issue (Issue, getIssuesPar)
+import Issue (Issue, getIssues)
+import Parallel (parMapM)
import Process (proc, sh)
import System.Directory (getCurrentDirectory)
import System.FilePath ((</>))
@@ -41,7 +42,7 @@ getPartialCommitInfos = do
--
-- @difficulty easy
commitHashes <- reverse <$> Git.getCommitHashes
- mapM getCommitInfoOf (map Commit commitHashes ++ [WorkingTree])
+ parMapM getCommitInfoOf (map Commit commitHashes ++ [WorkingTree])
getCommitInfoOf :: CommitHash -> IO PartialCommitInfo
getCommitInfoOf WorkingTree = do
@@ -69,7 +70,7 @@ getIssuesAndFilesCommitChanged hash = do
let cwd = tmp </> T.unpack hash
Git.withWorkingTree cwd hash do
files <- gitShowChanged cwd
- issues <- concat <$> catch (getIssuesPar cwd files) dieOfInvalidTreeGrepperResult
+ issues <- concat <$> catch (mapM (getIssues cwd) files) dieOfInvalidTreeGrepperResult
pure (issues, files)
dieOfInvalidTreeGrepperResult :: E.InvalidTreeGrepperResult -> IO a
@@ -83,7 +84,7 @@ getIssuesAndFilesWorkingTreeChanged :: [FilePath] -> IO ([Issue], [FilePath])
getIssuesAndFilesWorkingTreeChanged paths = do
cwd <- getCurrentDirectory
files <- gitLsFilesModifiedIn cwd paths
- issues <- concat <$> catch (getIssuesPar cwd files) dieOfInvalidTreeGrepperResult
+ issues <- concat <$> catch (mapM (getIssues cwd) files) dieOfInvalidTreeGrepperResult
pure (issues, files)
gitShowChanged :: FilePath -> IO [FilePath]
diff --git a/app/Issue.hs b/app/Issue.hs
index e6515a9..54ef5e4 100644
--- a/app/Issue.hs
+++ b/app/Issue.hs
@@ -3,7 +3,7 @@ module Issue
Provenance (..),
fromMatch,
id,
- getIssuesPar,
+ getIssues,
)
where
@@ -22,7 +22,6 @@ import Issue.Provenance (Provenance (..), commitFromHEAD)
import Issue.Tag (Tag (..))
import Issue.Tag qualified as I
import Issue.Text qualified as I
-import Parallel (parMapM)
import Process (proc, sh)
import System.FilePath (takeExtension)
import System.Process.Typed (setWorkingDir)
@@ -102,13 +101,9 @@ stripIssueMarkers text =
-- | Get all issues in the given directory and files. Runs
-- parallelized.
-getIssuesPar :: FilePath -> [FilePath] -> IO [[Issue]]
-getIssuesPar cwd files =
- parMapM (handle forgetGetIssuesExceptions . getIssues cwd) files
-
-- | Get all issues in the given directory and file.
getIssues :: FilePath -> FilePath -> IO [Issue]
-getIssues cwd filename = do
+getIssues cwd filename = handle (\(_ :: E.UnknownFileExtension) -> pure []) $ do
let extension = takeExtension filename
treeGrepperLanguage =
-- TODO Add support for all tree-grepper supported files
@@ -151,6 +146,3 @@ getIssues cwd filename = do
fixTreeGrepper :: G.Result -> G.Result
fixTreeGrepper treeGrepperResult =
treeGrepperResult {G.matches = G.merge treeGrepperResult.matches}
-
-forgetGetIssuesExceptions :: E.UnknownFileExtension -> IO [a]
-forgetGetIssuesExceptions _ = pure []