diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-08-17 11:35:34 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-08-17 11:35:34 -0400 |
commit | cdbf4d2873b0655c06b0de0d6c4e73e499101692 (patch) | |
tree | fe7c2ad4072b2a60f5f9b94227c1b361aee4df53 /Command | |
parent | efaffb47e901357fc8ffeb224d240c1f9238fbeb (diff) |
make whereis show urls when web remote does not have content
This is needed when external special remotes register an url for a key.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Whereis.hs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Command/Whereis.hs b/Command/Whereis.hs index 3610eed78..7b8bdf351 100644 --- a/Command/Whereis.hs +++ b/Command/Whereis.hs @@ -14,6 +14,7 @@ import Command import Remote import Logs.Trust import Logs.Web +import Remote.Web (getWebUrls) cmd :: Command cmd = noCommit $ withGlobalOptions (jsonOption : annexedMatchingOptions) $ @@ -60,6 +61,11 @@ perform remotemap key = do unless (null safelocations) $ showLongNote pp pp' <- prettyPrintUUIDs "untrusted" untrustedlocations unless (null untrustedlocations) $ showLongNote $ untrustedheader ++ pp' + + -- Since other remotes than the web remote can set urls + -- where a key can be downloaded, get and show all such urls + -- as a special case. + showRemote "web" =<< getWebUrls key forM_ (mapMaybe (`M.lookup` remotemap) locations) $ performRemote key if null safelocations then stop else next $ return True @@ -73,8 +79,7 @@ performRemote key remote = do ls <- (++) <$> askremote <*> claimedurls - unless (null ls) $ showLongNote $ unlines $ - map (\l -> name remote ++ ": " ++ l) ls + showRemote (name remote) ls where askremote = maybe (pure []) (flip id key) (whereisKey remote) claimedurls = do @@ -83,3 +88,9 @@ performRemote key remote = do . map getDownloader <$> getUrls key filterM (\u -> (==) <$> pure remote <*> claimingUrl u) us + +showRemote :: String -> [String] -> Annex () +showRemote n ls + | null ls = return () + | otherwise = showLongNote $ unlines $ + map (\l -> n ++ ": " ++ l) ls |