diff options
author | Joey Hess <joey@kitenet.net> | 2012-10-10 16:23:41 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-10-10 16:23:41 -0400 |
commit | fde7c97ffd0ad175918f270571febfc893defd55 (patch) | |
tree | a99b1d1f41e9ca08abee8ed2aaecbb73d5240fd4 /Logs | |
parent | 7053033f7708c2e432b3ad3e62356bd395932899 (diff) |
ui for selecting a repository group
Diffstat (limited to 'Logs')
-rw-r--r-- | Logs/Group.hs | 10 | ||||
-rw-r--r-- | Logs/PreferredContent.hs | 5 |
2 files changed, 6 insertions, 9 deletions
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 [] |