diff options
author | 2012-08-26 14:45:47 -0400 | |
---|---|---|
committer | 2012-08-26 14:45:47 -0400 | |
commit | c58d5532651f78e8bf0266b818d5480d282b26e6 (patch) | |
tree | da4f480d13b06aaf51416dc02128492705960741 /Remote.hs | |
parent | f4ca592cd0ac4940645f2f17fadac5e0da45424d (diff) |
refactor
Diffstat (limited to 'Remote.hs')
-rw-r--r-- | Remote.hs | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -24,6 +24,7 @@ module Remote ( remoteMap, uuidDescriptions, byName, + byCost, prettyPrintUUIDs, prettyListUUIDs, remotesWithUUID, @@ -224,3 +225,10 @@ forceTrust level remotename = do - on the remote, but this cannot always be relied on. -} logStatus :: Remote -> Key -> LogStatus -> Annex () logStatus remote key = logChange key (uuid remote) + +{- Orders remotes by cost, with ones with the lowest cost grouped together. -} +byCost :: [Remote] -> [[Remote]] +byCost = map snd . sort . M.toList . costmap + where + costmap = M.fromListWith (++) . map costpair + costpair r = (cost r, [r]) |