From a37d3605e40b5c9c125568045e0fb99e9796fe49 Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Thu, 9 Nov 2023 15:43:28 +0100 Subject: group-by -> group --- app/Issue/GroupBy.hs | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 app/Issue/GroupBy.hs (limited to 'app/Issue/GroupBy.hs') diff --git a/app/Issue/GroupBy.hs b/app/Issue/GroupBy.hs deleted file mode 100644 index 18859f2..0000000 --- a/app/Issue/GroupBy.hs +++ /dev/null @@ -1,45 +0,0 @@ -module Issue.GroupBy - ( groupByArg, - groupIssuesBy, - ) -where - -import Data.Map (Map) -import Data.Map qualified as M -import Data.Maybe (mapMaybe) -import Data.Text qualified as T -import Issue (Issue (..)) -import Issue.Tag (Tag (..)) -import Issue.Tag qualified as I -import Options.Applicative qualified as O - -groupByArg :: O.Parser (Maybe T.Text) -groupByArg = - O.optional - ( O.option - (O.maybeReader (parse . T.pack)) - ( O.long "group-by" - <> O.metavar "TAG" - <> O.help "Group selected issues." - ) - ) - where - parse s - | "@" `T.isPrefixOf` s = Just (T.drop 1 s) - | otherwise = Nothing - -groupIssuesBy :: T.Text -> [Issue] -> Map T.Text [Issue] -groupIssuesBy groupBy issues = - foldl - ( \collected issue -> - foldl - (flip $ M.alter (Just . maybe [issue] (issue :))) - collected - (groupsOfIssue groupBy issue) - ) - M.empty - issues - where - groupsOfIssue group issue = - mapMaybe I.tagValue $ - filter (\(Tag key _) -> key == group) (issue.tags ++ issue.internalTags) -- cgit v1.2.3