(Steve Dougherty)
2013-07-24: Add intial ListLocalRepos support. Add intial ListLocalRepos support.
diff --git a/infocalypse/wot.py b/infocalypse/wot.py
--- a/infocalypse/wot.py
+++ b/infocalypse/wot.py
@@ -45,12 +45,37 @@ def connect(ui, repo):
t.start()
while True:
+ sequenceID = node._getUniqueId()
+ # The event-querying is single-threaded, which makes things slow as
+ # everything waits on the completion of the current operation.
+ # Asynchronous code would require changes on the plugin side but
+ # potentially have much lower latency.
command = node.fcpPluginMessage(plugin_name=PLUGIN_NAME, id=fcp_id,
- plugin_params={'Message':
- 'ClearToSend'})[0]
+ plugin_params=
+ {'Message': 'ClearToSend',
+ 'SequenceID': sequenceID})[0]
+ # TODO: Look up handlers in a dictionary.
+ print command
+
+ # Reload the config each time - it may have changed between messages.
+ cfg = Config.from_ui(ui)
+
response = command['Replies.Message']
if response == 'Error':
raise util.Abort(command['Replies.Description'])
+ elif response == 'ListLocalRepos':
+ params = {'Message': 'RepoList',
+ 'SequenceID': sequenceID}
+
+ # Request USKs are keyed by repo path.
+ repo_index = 0
+ for path in cfg.request_usks.iterkeys():
+ params['Repo%s' % repo_index] = path
+ repo_index += 1
+
+ ack = node.fcpPluginMessage(plugin_name=PLUGIN_NAME, id=fcp_id,
+ plugin_params=params)[0]
+ print ack
def send_pull_request(ui, repo, from_identifier, to_identifier, to_repo_name):