From fde7c97ffd0ad175918f270571febfc893defd55 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 10 Oct 2012 16:23:41 -0400 Subject: ui for selecting a repository group --- Logs/Group.hs | 10 ++++------ Logs/PreferredContent.hs | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'Logs') diff --git a/Logs/Group.hs b/Logs/Group.hs index a58eafe92..56363f857 100644 --- a/Logs/Group.hs +++ b/Logs/Group.hs @@ -68,9 +68,7 @@ makeGroupMap byuuid = GroupMap byuuid bygroup explode (u, s) = map (\g -> (g, S.singleton u)) (S.toList s) {- If a repository is in exactly one standard group, returns it. -} -getStandardGroup :: UUID -> GroupMap -> Maybe StandardGroup -getStandardGroup u m = maybe Nothing go $ u `M.lookup` groupsByUUID m - where - go s = case catMaybes $ map toStandardGroup $ S.toList s of - [g] -> Just g - _ -> Nothing +getStandardGroup :: S.Set Group -> Maybe StandardGroup +getStandardGroup s = case catMaybes $ map toStandardGroup $ S.toList s of + [g] -> Just g + _ -> Nothing diff --git a/Logs/PreferredContent.hs b/Logs/PreferredContent.hs index 840c36155..9bb915983 100644 --- a/Logs/PreferredContent.hs +++ b/Logs/PreferredContent.hs @@ -89,9 +89,8 @@ makeMatcher groupmap u s {- Standard matchers are pre-defined for some groups. If none is defined, - or a repository is in multiple groups with standard matchers, match all. -} standardMatcher :: GroupMap -> UUID -> Utility.Matcher.Matcher MatchFiles -standardMatcher m u = maybe matchAll use (getStandardGroup u m) - where - use = makeMatcher m u . preferredContent +standardMatcher m u = maybe matchAll (makeMatcher m u . preferredContent) $ + getStandardGroup =<< u `M.lookup` groupsByUUID m matchAll :: Utility.Matcher.Matcher MatchFiles matchAll = Utility.Matcher.generate [] -- cgit v1.2.3