# Ward Vandewege <ward@curoverse.com>
require 'fileutils'
+require 'shellwords'
if RUBY_VERSION < '1.9.3' then
abort <<-EOS
subcommands = %w(copy create edit get keep pipeline run tag ws)
def exec_bin bin, opts
- bin_path = `which #{bin}`.strip
+ bin_path = `which #{bin.shellescape}`.strip
if bin_path.empty?
raise "#{bin}: command not found"
end
if ['get', 'put', 'ls', 'normalize'].index @sub then
# Native Arvados
exec_bin "arv-#{@sub}", remaining_opts
- elsif ['less', 'check'].index @sub then
- # wh* shims
- exec_bin "wh#{@sub}", remaining_opts
elsif @sub == 'docker'
exec_bin "arv-keepdocker", remaining_opts
else
puts "Usage: arv keep [method] [--parameters]\n"
puts "Use 'arv keep [method] --help' to get more information about specific methods.\n\n"
- puts "Available methods: ls, get, put, less, check, docker"
+ puts "Available methods: ls, get, put, docker"
end
abort
when 'pipeline'
Oj.load(newcontent)
when 'yaml'
YAML.load(newcontent)
+ else
+ abort "Unrecognized format #{global_opts[:format]}"
end
yield newobj
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
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
uuid = remaining_opts.shift
if uuid.nil? or uuid == "-h" or uuid == "--help"
puts head_banner
- puts "Usage: arv get [uuid] [fields...]\n\n"
- puts "Fetch the specified Arvados object, select the specified fields, \n"
- puts "and print a text representation (json or yaml, use --format).\n"
+ puts "Usage: arv [--format json|yaml] get [uuid] [fields...]\n\n"
+ puts "Fetch the specified Arvados object, select the specified fields,\n"
+ puts "and print a text representation.\n"
exit 255
end