7204: Minor refactoring of methods supporting `arv get` test cases.
[arvados.git] / sdk / cli / bin / arv
index f70f4d0eaa7fad61a2a2fa48c13e136dc3453c72..ccdd8a8c12bc077295f336be97c1f96d30cbfb3a 100755 (executable)
@@ -88,11 +88,11 @@ end
 subcommands = %w(copy create edit get keep pipeline run tag ws)
 
 def exec_bin bin, opts
-  @bin_path = `which #{bin}`.strip
-  if @bin_path.empty?
+  bin_path = `which #{bin}`.strip
+  if bin_path.empty?
     raise "#{bin}: command not found"
   end
-  exec @bin_path, *opts
+  exec bin_path, *opts
 end
 
 def check_subcommands client, arvados, subcommand, global_opts, remaining_opts
@@ -185,6 +185,8 @@ def edit_and_commit_object initial_obj, tmp_stem, global_opts, &block
                    Oj.load(newcontent)
                  when 'yaml'
                    YAML.load(newcontent)
+                 else
+                   abort "Unrecognized format #{global_opts[:format]}"
                  end
 
         yield newobj
@@ -320,11 +322,6 @@ def arv_edit client, arvados, global_opts, remaining_opts
     exit 255
   end
 
-  if not $stdout.tty?
-    puts "Not connected to a TTY, cannot run interactive editor."
-    exit 1
-  end
-
   rsc = lookup_uuid_rsc arvados, uuid
   oldobj = fetch_rsc_obj client, arvados, rsc, uuid, remaining_opts
 
@@ -339,9 +336,9 @@ def arv_edit client, arvados, global_opts, remaining_opts
                        authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
                      })
       results = check_response result
-      puts "Updated object #{results['uuid']}"
+      STDERR.puts "Updated object #{results['uuid']}"
     else
-      puts "Object is unchanged, did not update."
+      STDERR.puts "Object is unchanged, did not update."
     end
   end