zencoder-cli 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,22 @@ module Zencoder::CLI::Command
8
8
  Zencoder::CLI::Command.commands.merge!({ name => commands })
9
9
  end
10
10
 
11
+ def extract_id(args)
12
+ arg = args.shift
13
+ if arg.to_s.strip[/^\d+$/]
14
+ arg
15
+ else
16
+ print "Enter an ID: "
17
+ id = ask
18
+ if id.present?
19
+ id
20
+ else
21
+ puts "No ID given. Aborting."
22
+ exit 1
23
+ end
24
+ end
25
+ end
26
+
11
27
  end
12
28
  end
13
29
  end
@@ -7,7 +7,10 @@ module Zencoder::CLI::Command
7
7
  t.opt :page, "Jobs page number. Default 1.", :type => Integer
8
8
  t.opt :long, "Will not truncate filenames.", :default => false
9
9
  t.opt :state, "Filter the job list by job state", :type => String
10
- }}
10
+ }},
11
+ "jobs:create" => { :description => "Create a job by passing a JSON string or filename",
12
+ :help => "Create a job by passing either a JSON string or the path to a file containing JSON.\n\nExamples:\nzencoder jobs:create '{ \"input\": \"http://example.com/movie.mp4\" }'\nzencoder jobs:create /path/to/file.json",
13
+ :arguments => ["json_string_or_path_to_file"] }
11
14
  class << self
12
15
 
13
16
  def run(args, global_options, command_options)
@@ -38,6 +41,40 @@ module Zencoder::CLI::Command
38
41
  end
39
42
  end
40
43
 
44
+ def create(args, global_options, command_options)
45
+ arg = args.shift
46
+ if arg.blank?
47
+ puts "You must pass either a JSON string or the path to a file containing JSON."
48
+ exit 1
49
+ end
50
+ begin
51
+ json = JSON.parse(arg.to_s.first == "{" ? arg : File.read(arg))
52
+ rescue JSON::ParserError => e
53
+ puts "Invalid JSON: #{e.message}"
54
+ exit 1
55
+ rescue Errno::ENOENT => e
56
+ puts e.message
57
+ exit 1
58
+ end
59
+
60
+ response = Zencoder::Job.create(json, :base_url => Zencoder.base_url(global_options[:environment])).process_for_cli.body
61
+
62
+ rows = []
63
+ rows << ["ID", response["id"]]
64
+ rows << ["Test", response["test"]] if response["test"]
65
+ puts table([{ :value => "Job", :colspan => 2 }], *rows)
66
+ puts
67
+
68
+ response["outputs"].each_with_index do |output, i|
69
+ rows = []
70
+ rows << ["ID", output["id"]]
71
+ rows << ["Label", output["label"]] if output["label"]
72
+ rows << ["URL", output["url"]]
73
+ puts table([{ :value => "Output ##{i+1}", :colspan => 2 }], *rows)
74
+ puts
75
+ end
76
+ end
77
+
41
78
  end
42
79
  end
43
80
 
@@ -56,7 +93,7 @@ module Zencoder::CLI::Command
56
93
  class << self
57
94
 
58
95
  def run(args, global_options, command_options)
59
- job_id = extract_job_id(args)
96
+ job_id = extract_id(args)
60
97
  job = Zencoder::Job.details(job_id, :base_url => Zencoder.base_url(global_options[:environment])).process_for_cli.body["job"]
61
98
  rows = []
62
99
  rows << ["ID", job["id"]]
@@ -128,40 +165,28 @@ module Zencoder::CLI::Command
128
165
  end
129
166
 
130
167
  def open(args, global_options, command_options)
131
- job_id = extract_job_id(args)
168
+ job_id = extract_id(args)
132
169
  `open https://app.zencoder.com/jobs/#{job_id}`
133
170
  end
134
171
 
135
172
  def resubmit(args, global_options, command_options)
136
- job_id = extract_job_id(args)
173
+ job_id = extract_id(args)
137
174
  response = Zencoder::Job.resubmit(job_id, :base_url => Zencoder.base_url(global_options[:environment])).process_for_cli
138
175
  puts "Job ##{job_id} resubmitted."
139
176
  end
140
177
 
141
178
  def cancel(args, global_options, command_options)
142
- job_id = extract_job_id(args)
179
+ job_id = extract_id(args)
143
180
  response = Zencoder::Job.cancel(job_id, :base_url => Zencoder.base_url(global_options[:environment])).process_for_cli
144
181
  puts "Job ##{job_id} cancelled."
145
182
  end
146
183
 
147
184
  def delete(args, global_options, command_options)
148
- job_id = extract_job_id(args)
185
+ job_id = extract_id(args)
149
186
  response = Zencoder::Job.delete(job_id, :base_url => Zencoder.base_url(global_options[:environment])).process_for_cli
150
187
  puts "Job ##{job_id} deleted."
151
188
  end
152
189
 
153
-
154
- private
155
-
156
- def extract_job_id(args)
157
- job_id = args.shift
158
- method_name = caller.first[/`(.*)'$/, 1]
159
- if !job_id.to_s.strip[/^\d+$/]
160
- puts "You must specify the job to show. Try `zencoder job#{":"+method_name unless method_name == "run"} --help` for more information."
161
- exit 1
162
- end
163
- job_id
164
- end
165
190
  end
166
191
 
167
192
  end
@@ -1,5 +1,5 @@
1
1
  module Zencoder
2
2
  module CLI
3
- GEM_VERSION = '0.1.5'
3
+ GEM_VERSION = '0.1.6'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zencoder-cli
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 5
10
- version: 0.1.5
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brandon Arbini
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-20 00:00:00 -06:00
18
+ date: 2010-11-23 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency