diff options
author | Joey Hess <joey@kitenet.net> | 2014-01-01 20:12:20 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-01-01 20:12:20 -0400 |
commit | 08b48fa3ee2cb817b41c56470be8cf6c3cee7f27 (patch) | |
tree | 3e01c1d3a781320e7794374f7bb4fb94c87bc000 /Remote/External | |
parent | a62d941be1e90d13d4dddbe86d75c050f22cd61d (diff) |
added GETWANTED, SETWANTED for Tobias's flickr remote
This was unexpectedly difficult because of a depdenency cycle. To parse a
preferred content expression involves several things that need to operate
on the list of remotes. Which needs Remote.External. The only way to avoid
this cycle (I tried breaking it at several points) was to skip parsing the
expression in SETWANTED.
That's sorta ok, because git-annex already has to deal with unparsable
preferred content expressions being stored, in order to handle eg,
upgrades. But I'm still not very happy that I cannot check it.
I feel this is a strong indication that I need to beware of further
bloating the special remote protocol interface.
Diffstat (limited to 'Remote/External')
-rw-r--r-- | Remote/External/Types.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Remote/External/Types.hs b/Remote/External/Types.hs index 40bd8d52e..e925f0e91 100644 --- a/Remote/External/Types.hs +++ b/Remote/External/Types.hs @@ -33,6 +33,7 @@ module Remote.External.Types ( import Common.Annex import Annex.Exception import Types.Key (file2key, key2file) +import Types.StandardGroups (PreferredContentExpression) import Utility.Metered (BytesProcessed(..)) import Logs.Transfer (Direction(..)) import Config.Cost (Cost) @@ -167,6 +168,8 @@ data RemoteRequest | SETCREDS Setting String String | GETCREDS Setting | GETUUID + | SETWANTED PreferredContentExpression + | GETWANTED deriving (Show) instance Receivable RemoteRequest where @@ -178,6 +181,8 @@ instance Receivable RemoteRequest where parseCommand "SETCREDS" = parse3 SETCREDS parseCommand "GETCREDS" = parse1 GETCREDS parseCommand "GETUUID" = parse0 GETUUID + parseCommand "SETWANTED" = parse1 SETWANTED + parseCommand "GETWANTED" = parse0 GETWANTED parseCommand _ = parseFail -- Responses to RemoteRequest. |