cook 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +14 -0
- data/lib/cook.rb +1 -1
- data/lib/rake/config.rb +25 -9
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
=== 2.0.9 / 2014-09-16 (external GitHub)
|
2
|
+
|
3
|
+
* Added Conf.retries to allow gl_run (GreenLetters based) processes
|
4
|
+
which throw an exception to be retried a number of times.
|
5
|
+
|
6
|
+
* This allows processes conducted over noisy internet connections to
|
7
|
+
be automatically retried a number of times.
|
8
|
+
|
9
|
+
* Each failed attempt is log if tracing is enabled
|
10
|
+
|
11
|
+
* The current default retry number is 5. This can be overridden by
|
12
|
+
either Conf.retries (globally) or options[:retries] (locally for a
|
13
|
+
given gl_run call).
|
14
|
+
|
1
15
|
=== 2.0.1 / 2014-01-15 (external GitHub)
|
2
16
|
|
3
17
|
* 2.0.1 minor testing
|
data/lib/cook.rb
CHANGED
data/lib/rake/config.rb
CHANGED
@@ -666,10 +666,13 @@ module Rake
|
|
666
666
|
else
|
667
667
|
options[:timeout] = 10;
|
668
668
|
end
|
669
|
+
Conf.retries = 5 unless Conf.has_key?(:retries)
|
670
|
+
options[:retries] = Conf.retries unless options.has_key?(:retries)
|
669
671
|
|
670
672
|
Rake::Application.mesg args.join(' ') if $TRACE
|
671
673
|
Rake::Application.mesg "Timeout: #{options[:timeout]}" if $TRACE
|
672
674
|
Rake::Application.mesg "#{options}" if $TRACE && !options.empty?() && options.has_key?(:verbose);
|
675
|
+
Rake::Application.mesg "Retries: #{options[:retries]}" if $TRACE
|
673
676
|
|
674
677
|
asyncTriggersBlocks = Array.new;
|
675
678
|
if options.has_key? :asyncTriggersBlocks then
|
@@ -684,19 +687,32 @@ module Rake
|
|
684
687
|
options[:env] = ENV unless options.has_key?(:env);
|
685
688
|
options[:transcript] = Rake::Application.logger unless options.has_key?(:transcript);
|
686
689
|
|
687
|
-
|
688
|
-
|
690
|
+
attempt = 0
|
691
|
+
tryAgain = true
|
692
|
+
cmdProcess = nil
|
693
|
+
while(tryAgain) do
|
694
|
+
attempt += 1
|
695
|
+
tryAgain = false
|
696
|
+
begin
|
697
|
+
cmdProcess = Greenletters::Process.new(*args, options);
|
698
|
+
cmdProcess.start!;
|
699
|
+
|
700
|
+
asyncTriggersBlocks.each do | asyncTriggersBlock |
|
701
|
+
if asyncTriggersBlock.kind_of? Proc then
|
702
|
+
asyncTriggersBlock.call(cmdProcess);
|
703
|
+
end
|
704
|
+
end
|
705
|
+
|
706
|
+
aBlock.call(cmdProcess) unless aBlock.nil?;
|
689
707
|
|
690
|
-
|
691
|
-
|
692
|
-
|
708
|
+
cmdProcess.wait_for(:exit, exitStatus);
|
709
|
+
rescue StandardError => se
|
710
|
+
Rake::Application.mesg "Failed attempt #{attempt}" if $TRACE
|
711
|
+
tryAgain = true
|
712
|
+
raise se unless attempt < options[:retries]
|
693
713
|
end
|
694
714
|
end
|
695
715
|
|
696
|
-
aBlock.call(cmdProcess) unless aBlock.nil?;
|
697
|
-
|
698
|
-
cmdProcess.wait_for(:exit, exitStatus);
|
699
|
-
|
700
716
|
cmdProcess
|
701
717
|
end
|
702
718
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
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: 2014-
|
12
|
+
date: 2014-09-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|