infocalypse
 
(Steve Dougherty)
2013-06-10: Return inserted URI on create and push.

Return inserted URI on create and push.

diff --git a/infocalypse/infcmds.py b/infocalypse/infcmds.py
--- a/infocalypse/infcmds.py
+++ b/infocalypse/infcmds.py
@@ -495,8 +495,12 @@ def is_redundant(uri):
 ############################################################
 # User feedback? success, failure?
 def execute_create(ui_, repo, params, stored_cfg):
-    """ Run the create command. """
+    """
+    Run the create command.
+    Return the URIs the repo was inserted to, or None in the case of an error.
+    """
     update_sm = None
+    inserted_to = None
     try:
         update_sm = setup(ui_, repo, params, stored_cfg)
         # REDFLAG: Do better.
@@ -516,9 +520,9 @@ def execute_create(ui_, repo, params, st
         run_until_quiescent(update_sm, params['POLL_SECS'])
 
         if update_sm.get_state(QUIESCENT).arrived_from(((FINISHING,))):
+            inserted_to = update_sm.get_state(INSERTING_URI).get_request_uris()
             ui_.status("Inserted to:\n%s\n" %
-                       '\n'.join(update_sm.get_state(INSERTING_URI).
-                                 get_request_uris()))
+                       '\n'.join(inserted_to))
         else:
             ui_.status("Create failed.\n")
 
@@ -526,6 +530,8 @@ def execute_create(ui_, repo, params, st
     finally:
         cleanup(update_sm)
 
+    return inserted_to
+
 # REDFLAG: LATER: make this work without a repo?
 def execute_copy(ui_, repo, params, stored_cfg):
     """ Run the copy command. """
@@ -606,10 +612,14 @@ def execute_reinsert(ui_, repo, params, 
         cleanup(update_sm)
 
 def execute_push(ui_, repo, params, stored_cfg):
-    """ Run the push command. """
+    """
+    Run the push command.
+    Return the URIs the repo was inserted to if it changed, or None otherwise.
+    """
 
     assert params.get('REQUEST_URI', None) is None
     update_sm = None
+    inserted_to = None
     try:
         update_sm = setup(ui_, repo, params, stored_cfg)
         request_uri, is_keypair = do_key_setup(ui_, update_sm, params,
@@ -626,9 +636,9 @@ def execute_push(ui_, repo, params, stor
         run_until_quiescent(update_sm, params['POLL_SECS'])
 
         if update_sm.get_state(QUIESCENT).arrived_from(((FINISHING,))):
+            inserted_to = update_sm.get_state(INSERTING_URI).get_request_uris()
             ui_.status("Inserted to:\n%s\n" %
-                       '\n'.join(update_sm.get_state(INSERTING_URI).
-                                 get_request_uris()))
+                       '\n'.join(inserted_to))
         else:
             extra = ''
             if update_sm.ctx.get('UP_TO_DATE', False):
@@ -639,6 +649,8 @@ def execute_push(ui_, repo, params, stor
     finally:
         cleanup(update_sm)
 
+    return inserted_to
+
 def execute_pull(ui_, repo, params, stored_cfg):
     """ Run the pull command. """
     update_sm = None