teapot 0.5.0 → 0.5.1
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/lib/teapot/commands.rb +12 -3
- data/lib/teapot/version.rb +1 -1
- data/teapot.gemspec +1 -0
- metadata +19 -3
data/lib/teapot/commands.rb
CHANGED
@@ -21,9 +21,18 @@
|
|
21
21
|
require 'set'
|
22
22
|
require 'rainbow'
|
23
23
|
require 'shellwords'
|
24
|
+
require 'facter'
|
24
25
|
|
25
26
|
module Teapot
|
26
27
|
module Commands
|
28
|
+
def self.processor_count
|
29
|
+
# Get the number of virtual/physical processors
|
30
|
+
count = Facter.processorcount.to_i rescue 1
|
31
|
+
|
32
|
+
# Make sure we always return at least 1:
|
33
|
+
count < 1 ? 1 : count
|
34
|
+
end
|
35
|
+
|
27
36
|
class CommandError < StandardError
|
28
37
|
end
|
29
38
|
|
@@ -56,15 +65,13 @@ module Teapot
|
|
56
65
|
class Pool
|
57
66
|
def initialize(options = {})
|
58
67
|
@commands = []
|
59
|
-
@limit = options[:limit] ||
|
68
|
+
@limit = options[:limit] || Commands.processor_count
|
60
69
|
|
61
70
|
@running = Set.new
|
62
71
|
end
|
63
72
|
|
64
73
|
def run(*args)
|
65
74
|
args = args.flatten.collect &:to_s
|
66
|
-
|
67
|
-
puts args.join(' ').color(:blue)
|
68
75
|
|
69
76
|
@commands << args
|
70
77
|
|
@@ -75,6 +82,8 @@ module Teapot
|
|
75
82
|
while @running.size < @limit and @commands.size > 0
|
76
83
|
command = @commands.shift
|
77
84
|
|
85
|
+
puts command.join(' ').color(:blue)
|
86
|
+
|
78
87
|
pid = Process.fork do
|
79
88
|
exec(*command)
|
80
89
|
|
data/lib/teapot/version.rb
CHANGED
data/teapot.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teapot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: facter
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
description: ! "\tTeapot is a tool for managing complex cross-platform builds. It
|
63
79
|
provides\n\tadvanced dependency management via the Teapot file and is supported
|
64
80
|
by\n\tthe infusions ecosystem of packages and platform tooling.\n"
|
@@ -117,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
133
|
version: '0'
|
118
134
|
segments:
|
119
135
|
- 0
|
120
|
-
hash: -
|
136
|
+
hash: -2634400056080350506
|
121
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
138
|
none: false
|
123
139
|
requirements:
|
@@ -126,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
142
|
version: '0'
|
127
143
|
segments:
|
128
144
|
- 0
|
129
|
-
hash: -
|
145
|
+
hash: -2634400056080350506
|
130
146
|
requirements: []
|
131
147
|
rubyforge_project:
|
132
148
|
rubygems_version: 1.8.24
|