tracker-client 1.1.1 → 1.1.2

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 +2 -2
  2. data/lib/command.rb +15 -2
  3. metadata +2 -2
@@ -14,7 +14,7 @@ opts = Trollop::options do
14
14
  opt :config, "Tracker config file location", :short => 'c', :default => "#{File.join(ENV['HOME'], '.trackerrc')}"
15
15
  opt :obsolete, "Used when recording new revision of patchset", :short => 'o', :type => :int
16
16
  opt :message, "Add short message to actions", :short => 'm', :type => :string
17
- opt :id, "Patchset ID used by download action", :short => 'i', :type => :string
17
+ opt :id, "Set identifier used by download, ack, push or nack", :short => 'i', :type => :string
18
18
  opt :upload, 'Upload current branch patches after record', :short => 'u', :type => :flag
19
19
  opt :branch, 'Create specified branch when downloading patches', :short => 'b', :type => :string
20
20
  end
@@ -41,7 +41,7 @@ def print_usage
41
41
  puts 'Examples:'
42
42
  puts
43
43
  puts '$ tracker record -o 45 # Record current branch and obsolete patchset 45 (bump revision)'
44
- puts '$ tracker record -u # Record current branch and upload all patches'
44
+ puts '$ tracker download 45 -b review # Download set 45, create branch "review" and apply the downloaded patches'
45
45
  puts '$ tracker list new # Display all new or open sets'
46
46
  puts '$ tracker list mfojtik -i author # Display all sets that were recorded by %mfojtik%'
47
47
  ''
@@ -79,7 +79,7 @@ module Tracker
79
79
  )
80
80
  response = JSON::parse(response)
81
81
  output = "#{number_of_commits} patches were recorded to the tracker server"+
82
- " [\e[1m%s#{config[:url]}set/#{response['id']}\e[0m] [revision #{response['revision']}]"
82
+ " [\e[1m#{config[:url]}set/#{response['id']}\e[0m] [revision #{response['revision']}]"
83
83
  output += "\n" + upload(directory) if opts[:upload]
84
84
  output
85
85
  rescue => e
@@ -179,7 +179,16 @@ module Tracker
179
179
  patch_filename = File.join(directory, "#{counter}-#{commit}.patch")
180
180
  File.open(patch_filename, 'w') { |f| f.puts download_patch_body(commit) }
181
181
  if !branch.nil?
182
- puts git_cmd("git am #{patch_filename}", directory)
182
+ begin
183
+ puts git_cmd("git am #{patch_filename}", directory)
184
+ rescue ChildCommandError => e
185
+ puts git_cmd "git am --abort", directory
186
+ puts git_cmd "git checkout master", directory
187
+ puts git_cmd "git branch -D #{branch}", directory
188
+ puts "ERROR: #{e.message}. Reverting back to 'master' branch."
189
+ puts "Downloaded patch saved to :#{patch_filename}"
190
+ exit 1
191
+ end
183
192
  FileUtils.rm_f(patch_filename)
184
193
  end
185
194
  counter += 1
@@ -327,6 +336,8 @@ module Tracker
327
336
  ''
328
337
  end
329
338
 
339
+ class ChildCommandError < StandardError; end
340
+
330
341
  private
331
342
 
332
343
  # Execute GIT command ('git') in the specified directory. Method will then
@@ -340,7 +351,9 @@ module Tracker
340
351
  begin
341
352
  Dir.chdir(directory)
342
353
  result = %x[#{cmd}]
354
+ raise ChildCommandError.new("Child process returned #{$?}") if $? != 0
343
355
  rescue => e
356
+ raise e if e.kind_of? ChildCommandError
344
357
  puts "ERROR: #{e.message}"
345
358
  exit(1)
346
359
  ensure
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.1.1
4
+ version: 1.1.2
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-09-12 00:00:00.000000000 Z
12
+ date: 2012-10-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client