diff options
Diffstat (limited to 'app/Issue/Filter.hs')
-rw-r--r-- | app/Issue/Filter.hs | 15 |
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 + ) |