tracker-client 1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/tracker +7 -4
  2. data/lib/command.rb +32 -10
  3. metadata +2 -2
data/bin/tracker CHANGED
@@ -16,6 +16,7 @@ opts = Trollop::options do
16
16
  opt :message, "Add short message to actions", :short => 'm', :type => :string
17
17
  opt :id, "Patchset ID used by download action", :short => 'i', :type => :string
18
18
  opt :upload, 'Upload current branch patches after record', :short => 'u', :type => :flag
19
+ opt :branch, 'Create specified branch when downloading patches', :short => 'b', :type => :string
19
20
  end
20
21
 
21
22
  Tracker::Cmd.config(:set, :file => opts[:config])
@@ -42,11 +43,13 @@ end
42
43
 
43
44
  puts case ARGV[0]
44
45
  when 'record' then Tracker::Cmd.record(opts[:dir], { :obsolete => opts[:obsolete], :upload => opts[:upload]})
45
- when 'ack' then Tracker::Cmd.ack(opts[:dir], :message => opts[:message])
46
- when 'nack' then Tracker::Cmd.nack(opts[:dir], :message => opts[:message])
47
- when 'push' then Tracker::Cmd.push(opts[:dir], :message => opts[:message])
46
+
47
+ when 'ack' then Tracker::Cmd.ack(opts[:dir], { :message => opts[:message], :set => opts[:id] })
48
+ when 'nack' then Tracker::Cmd.nack(opts[:dir], { :message => opts[:message], :set => opts[:id] })
49
+ when 'push' then Tracker::Cmd.push(opts[:dir], { :message => opts[:message], :set => opts[:id] })
50
+
48
51
  when 'upload' then Tracker::Cmd.upload(opts[:dir])
49
- when 'download' then Tracker::Cmd.download(opts[:dir], opts[:id])
52
+ when 'download' then Tracker::Cmd.download(opts[:dir], ARGV[1], opts[:branch])
50
53
  when 'status' then Tracker::Cmd.status(opts[:dir])
51
54
  when 'apply' then Tracker::Cmd.apply(opts[:dir], ARGV[1])
52
55
  else print_usage
data/lib/command.rb CHANGED
@@ -157,7 +157,7 @@ module Tracker
157
157
  end
158
158
  end
159
159
 
160
- def self.download(directory, patchset_id)
160
+ def self.download(directory, patchset_id, branch=nil)
161
161
  patches = []
162
162
  begin
163
163
  response = RestClient.get(
@@ -174,11 +174,15 @@ module Tracker
174
174
  end
175
175
  counter = 0
176
176
  puts
177
+ puts git_cmd("git checkout -b #{branch}", directory) if !branch.nil?
177
178
  patches.each do |commit|
178
- File.open(File.join(directory, "#{counter}-#{commit}.patch"), 'w') { |f|
179
- f.puts download_patch_body(commit)
180
- }
181
- puts '[v] %s-%s.patch' % [counter, commit]
179
+ patch_filename = File.join(directory, "#{counter}-#{commit}.patch")
180
+ File.open(patch_filename, 'w') { |f| f.puts download_patch_body(commit) }
181
+ if !branch.nil?
182
+ puts git_cmd("git am #{patch_filename}", directory)
183
+ else
184
+ puts '[v] %s-%s.patch' % [counter, commit]
185
+ end
182
186
  counter += 1
183
187
  end
184
188
  puts "\n -> #{counter} patches downloaded."
@@ -204,13 +208,11 @@ module Tracker
204
208
  # * +directory+ - If given, cmd app will 'chdir' into that directory (default: nil)
205
209
  #
206
210
  def self.action(name, directory, options={})
207
- patches = JSON::parse(patches_to_json(directory))
208
- messages = patches.pop
209
211
  puts
210
- patches.each do |p|
212
+ if options[:set]
211
213
  begin
212
214
  RestClient.post(
213
- config[:url] + ('/patch/%s/%s' % [p['hashes']['commit'], name]),
215
+ config[:url] + ('/set/%s/%s' % [options[:set], name]),
214
216
  {
215
217
  :message => options[:message]
216
218
  },
@@ -219,10 +221,30 @@ module Tracker
219
221
  'Authorization' => "Basic #{basic_auth}"
220
222
  }
221
223
  )
222
- puts '[%s][%s] %s' % [name.to_s.upcase, p['hashes']['commit'][-8, 8], messages[p['hashes']['commit']]]
224
+ puts '[%s][%s] Status of all patches in set updated.' % [name, options[:set]]
223
225
  rescue => e
224
226
  puts '[ERR] %s' % e.message
225
227
  end
228
+ else
229
+ patches = JSON::parse(patches_to_json(directory))
230
+ messages = patches.pop
231
+ patches.each do |p|
232
+ begin
233
+ RestClient.post(
234
+ config[:url] + ('/patch/%s/%s' % [p['hashes']['commit'], name]),
235
+ {
236
+ :message => options[:message]
237
+ },
238
+ {
239
+ :content_type => 'application/json',
240
+ 'Authorization' => "Basic #{basic_auth}"
241
+ }
242
+ )
243
+ puts '[%s][%s] %s' % [name.to_s.upcase, p['hashes']['commit'][-8, 8], messages[p['hashes']['commit']]]
244
+ rescue => e
245
+ puts '[ERR] %s' % e.message
246
+ end
247
+ end
226
248
  end
227
249
  " |\n |--------> [%s]\n\n" % config[:url]
228
250
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tracker-client
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-22 00:00:00.000000000 Z
12
+ date: 2012-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client