arvados-cli 0.1.20160513152536 → 0.1.20160608142315

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/arv +44 -1
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00cd9c407717da86e549d4c8b3a95c1457fa7085
4
- data.tar.gz: 211c3fd43d9c5f1def9f188b0fdabb59df6f0bc6
3
+ metadata.gz: a5fc889cbdad1ec1ac89ed8674cf1499e90c20d4
4
+ data.tar.gz: aed390277dc320517d93fd8ab7b14da48b3b0a2c
5
5
  SHA512:
6
- metadata.gz: acbcaa140c56346a72fd72610b2e16e7294cb3a9fd61dac5ac9a9c99e9a62cf8bb8ac97197d6ab72e7d6cd51c75d889e3a61f22e0b22aa7b0a6d83fcd2ffa030
7
- data.tar.gz: 351f076dad9350cab3ee6f2584ddf7e3e11682ad1130b1b2963e260dbf299a7ff6216250c601f1193ea51fc82ad67254f21cd796197bb8bd0cdf7c7ea5945b0a
6
+ metadata.gz: 92372e41f978b51561327fba6bf9107e1291aac4d8dd36de024e8714399a1a9cd904f4713a28bdf663a34049de94b82c4c67e718b27c277b686a4ed0e28f601e
7
+ data.tar.gz: 11bef7ffe6f6f12c0c10e3739727d7376457069b547ce1d80953d16c7079b00fa4518ff68cf668eb09719d6df404fc6e7a8142feecb390f9f4ed244bf6d5958c
data/bin/arv CHANGED
@@ -568,7 +568,11 @@ def parse_arguments(discovery_document, subcommands)
568
568
  if body_object["required"] == false
569
569
  is_required = false
570
570
  end
571
- opt resource.to_sym, "#{resource} (request body)", {
571
+ resource_opt_desc = "Either a string representing #{resource} as JSON or a filename from which to read #{resource} JSON (use '-' to read from stdin)."
572
+ if is_required
573
+ resource_opt_desc += " This option must be specified."
574
+ end
575
+ opt resource.to_sym, resource_opt_desc, {
572
576
  required: is_required,
573
577
  type: :string
574
578
  }
@@ -634,6 +638,45 @@ end
634
638
  request_parameters = {_profile:true}.merge(method_opts)
635
639
  resource_body = request_parameters.delete(resource_schema.to_sym)
636
640
  if resource_body
641
+ # check if resource_body is valid JSON by attempting to parse it
642
+ resource_body_is_json = true
643
+ begin
644
+ # we don't actually need the results of the parsing,
645
+ # just checking for the JSON::ParserError exception
646
+ JSON.parse resource_body
647
+ rescue JSON::ParserError => e
648
+ resource_body_is_json = false
649
+ end
650
+ resource_body_is_readable_file = false
651
+ # if resource_body is not valid JSON, it should be a filename (or '-' for stdin)
652
+ if resource_body == '-'
653
+ resource_body_is_readable_file = true
654
+ resource_body_file = $stdin
655
+ elsif File.readable? resource_body
656
+ resource_body_is_readable_file = true
657
+ resource_body_file = File.open(resource_body, 'r')
658
+ end
659
+ if resource_body_is_json and resource_body_is_readable_file
660
+ abort "Argument specified for option '--#{resource_schema.to_sym}' is both valid JSON and a readable file. Please consider renaming the file: '#{resource_body}'"
661
+ elsif !resource_body_is_json and !resource_body_is_readable_file
662
+ if File.exists? resource_body
663
+ # specified file exists but is not readable
664
+ abort "Argument specified for option '--#{resource_schema.to_sym}' is an existing file but is not readable. Please check permissions on: '#{resource_body}'"
665
+ else
666
+ # specified file does not exist
667
+ abort "Argument specified for option '--#{resource_schema.to_sym}' is neither valid JSON nor an existing file: '#{resource_body}'"
668
+ end
669
+ elsif resource_body_is_readable_file
670
+ resource_body = resource_body_file.read()
671
+ begin
672
+ # we don't actually need the results of the parsing,
673
+ # just checking for the JSON::ParserError exception
674
+ JSON.parse resource_body
675
+ rescue JSON::ParserError => e
676
+ abort "Contents of file '#{resource_body_file.path}' is not valid JSON: #{e}"
677
+ end
678
+ resource_body_file.close()
679
+ end
637
680
  request_body = {
638
681
  resource_schema => resource_body
639
682
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arvados-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20160513152536
4
+ version: 0.1.20160608142315
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arvados Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-13 00:00:00.000000000 Z
11
+ date: 2016-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arvados
@@ -164,7 +164,7 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0.8'
167
- description: Arvados command line tools, git commit 4c4387de5857ef00899fcb760a7cfc5ad4b76268
167
+ description: Arvados command line tools, git commit 548e0c54db524cb7317850d4dfd8f3ee0b93cdb0
168
168
  email: gem-dev@curoverse.com
169
169
  executables:
170
170
  - arv