aboutsummaryrefslogtreecommitdiffstats
path: root/app/Issue/Filter.hs
diff options
context:
space:
mode:
Diffstat (limited to 'app/Issue/Filter.hs')
-rw-r--r--app/Issue/Filter.hs15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/Issue/Filter.hs b/app/Issue/Filter.hs
index e8209a7..68eda87 100644
--- a/app/Issue/Filter.hs
+++ b/app/Issue/Filter.hs
@@ -2,11 +2,14 @@ module Issue.Filter
( Filter,
filterArg,
applyFilters,
+ applyClosed,
+ applyPath,
)
where
import Control.Applicative (liftA2, (<|>))
import Data.Attoparsec.Text qualified as A
+import Data.List (isPrefixOf)
import Data.Text (Text)
import Data.Text qualified as T
import Issue (Issue (..))
@@ -132,3 +135,15 @@ op (Ge) = flip (>=)
op (Gt) = flip (>)
op (Le) = flip (<=)
op (Lt) = flip (<)
+
+applyClosed :: Bool -> [Issue] -> [Issue]
+applyClosed closed = filter (\issue -> closed || not issue.closed)
+
+applyPath :: [FilePath] -> [Issue] -> [Issue]
+applyPath files =
+ filter
+ ( \issue ->
+ if null files
+ then True
+ else any (`isPrefixOf` issue.file) files
+ )