teapot 0.9.9 → 0.9.10
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/bin/teapot +6 -2
- data/lib/teapot/build/target.rb +0 -1
- data/lib/teapot/commands.rb +11 -13
- data/lib/teapot/controller/list.rb +4 -1
- data/lib/teapot/environment/system.rb +2 -0
- data/lib/teapot/version.rb +1 -1
- data/teapot.gemspec +10 -4
- data/test/test_dependency.rb +2 -4
- data/test/test_environment.rb +2 -4
- data/test/test_substitutions.rb +2 -4
- data/test/test_teapot.rb +2 -4
- metadata +67 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 878219ed331477566d41ce4f34e5342bd20d3b54
|
4
|
+
data.tar.gz: fb855b6abbc1225ea619a4ba4e17e821a8c37b62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d12945e3ba6e0aa7debca0ebbe7642e4edad9b412df3d538f0aa7c4c1195afabad9204c5c9954d52d9563d690c0a8918795e0382c8324c55a86be7f1d6e6195d
|
7
|
+
data.tar.gz: b2faf14aa6e156a92e041b082ce790de98425cab5f606f81c0705afea8327f1064540f14d24df84468189f5c6c375ddeef2ab29c5d93df244d730abac09fec08
|
data/Gemfile
CHANGED
data/bin/teapot
CHANGED
@@ -72,8 +72,12 @@ module Application
|
|
72
72
|
make_controller.run(targets)
|
73
73
|
end
|
74
74
|
|
75
|
-
def self.list
|
76
|
-
|
75
|
+
def self.list(only = ARGV)
|
76
|
+
if only.size > 0
|
77
|
+
make_controller.list(Set.new(only))
|
78
|
+
else
|
79
|
+
make_controller.list
|
80
|
+
end
|
77
81
|
end
|
78
82
|
|
79
83
|
def self.visualize(targets = ARGV)
|
data/lib/teapot/build/target.rb
CHANGED
data/lib/teapot/commands.rb
CHANGED
@@ -21,7 +21,8 @@
|
|
21
21
|
require 'set'
|
22
22
|
require 'rainbow'
|
23
23
|
require 'shellwords'
|
24
|
-
|
24
|
+
|
25
|
+
require 'system'
|
25
26
|
require 'rexec/task'
|
26
27
|
|
27
28
|
module Teapot
|
@@ -36,14 +37,6 @@ module Teapot
|
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
39
|
-
def self.processor_count
|
40
|
-
# Get the number of virtual/physical processors
|
41
|
-
count = Facter.processorcount.to_i rescue 1
|
42
|
-
|
43
|
-
# Make sure we always return at least 1:
|
44
|
-
count < 1 ? 1 : count
|
45
|
-
end
|
46
|
-
|
47
40
|
class CommandError < StandardError
|
48
41
|
end
|
49
42
|
|
@@ -55,7 +48,7 @@ module Teapot
|
|
55
48
|
options = Hash === args.last ? args.pop : {}
|
56
49
|
options[:passthrough] ||= :all
|
57
50
|
|
58
|
-
args = args.flatten.collect &:to_s
|
51
|
+
args = args.flatten.compact.collect &:to_s
|
59
52
|
|
60
53
|
puts args.join(' ').color(:blue) + " in #{options[:chdir] || Dir.getwd}"
|
61
54
|
|
@@ -79,7 +72,7 @@ module Teapot
|
|
79
72
|
end
|
80
73
|
|
81
74
|
def self.make(*args)
|
82
|
-
run("make",
|
75
|
+
run("make", args, "-j", System::CPU.count)
|
83
76
|
end
|
84
77
|
|
85
78
|
def self.make_install
|
@@ -87,15 +80,20 @@ module Teapot
|
|
87
80
|
end
|
88
81
|
|
89
82
|
class Pool
|
83
|
+
def self.concurrent_process_count
|
84
|
+
System::CPU.count * 2
|
85
|
+
end
|
86
|
+
|
90
87
|
def initialize(options = {})
|
91
88
|
@commands = []
|
92
|
-
|
89
|
+
|
90
|
+
@limit = options[:limit] || Pool.concurrent_process_count
|
93
91
|
|
94
92
|
@running = Set.new
|
95
93
|
end
|
96
94
|
|
97
95
|
def run(*args)
|
98
|
-
args = args.flatten.collect &:to_s
|
96
|
+
args = args.flatten.compact.collect &:to_s
|
99
97
|
|
100
98
|
@commands << args
|
101
99
|
|
@@ -22,9 +22,12 @@ require 'teapot/controller'
|
|
22
22
|
|
23
23
|
module Teapot
|
24
24
|
class Controller
|
25
|
-
def list
|
25
|
+
def list(only = nil)
|
26
26
|
# Should this somehow consider context.root_package?
|
27
27
|
context.configuration.packages.each do |package|
|
28
|
+
# The root package is the local package for this context:
|
29
|
+
next unless only == nil or only.include?(package.name)
|
30
|
+
|
28
31
|
log "Package #{package.name} (from #{package.path}):".bright
|
29
32
|
|
30
33
|
begin
|
data/lib/teapot/version.rb
CHANGED
data/teapot.gemspec
CHANGED
@@ -10,8 +10,10 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["samuel.williams@oriontransfer.co.nz"]
|
11
11
|
spec.description = <<-EOF
|
12
12
|
Teapot is a tool for managing complex cross-platform builds. It provides
|
13
|
-
advanced dependency management
|
14
|
-
|
13
|
+
advanced package-based dependency management with a single configuration file
|
14
|
+
per project. It can fetch, list, build, visualise and create projects, and
|
15
|
+
has been designed from the ground up to support collaborative decentralised
|
16
|
+
development.
|
15
17
|
EOF
|
16
18
|
spec.summary = %q{Teapot is a tool for managing complex cross-platform builds.}
|
17
19
|
spec.homepage = "http://www.kyusu.org"
|
@@ -24,13 +26,17 @@ Gem::Specification.new do |spec|
|
|
24
26
|
|
25
27
|
spec.required_ruby_version = '>= 1.9.3'
|
26
28
|
|
27
|
-
spec.add_dependency "rainbow"
|
29
|
+
spec.add_dependency "rainbow", "~> 2.0.0"
|
28
30
|
spec.add_dependency "rexec", "~> 1.6.0"
|
29
31
|
spec.add_dependency "trollop"
|
30
|
-
spec.add_dependency "
|
32
|
+
spec.add_dependency "system", "~> 0.1.3"
|
31
33
|
|
32
34
|
spec.add_dependency "graphviz"
|
33
35
|
|
34
36
|
# This could be a good option in the future for teapot fetch:
|
35
37
|
#spec.add_dependency "rugged"
|
38
|
+
|
39
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
40
|
+
spec.add_development_dependency "minitest"
|
41
|
+
spec.add_development_dependency "rake"
|
36
42
|
end
|
data/test/test_dependency.rb
CHANGED
@@ -18,13 +18,11 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require
|
22
|
-
require 'test/unit'
|
23
|
-
require 'stringio'
|
21
|
+
require "minitest/autorun"
|
24
22
|
|
25
23
|
require 'teapot/dependency'
|
26
24
|
|
27
|
-
class TestDependency < Test
|
25
|
+
class TestDependency < MiniTest::Test
|
28
26
|
class BasicDependency
|
29
27
|
include Teapot::Dependency
|
30
28
|
|
data/test/test_environment.rb
CHANGED
@@ -18,13 +18,11 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require
|
22
|
-
require 'test/unit'
|
23
|
-
require 'stringio'
|
21
|
+
require "minitest/autorun"
|
24
22
|
|
25
23
|
require 'teapot/environment'
|
26
24
|
|
27
|
-
class TestEnvironment < Test
|
25
|
+
class TestEnvironment < MiniTest::Test
|
28
26
|
def test_environment_chaining
|
29
27
|
a = Teapot::Environment.new
|
30
28
|
a[:cflags] = ["-std=c++11"]
|
data/test/test_substitutions.rb
CHANGED
@@ -18,13 +18,11 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require
|
22
|
-
require 'test/unit'
|
23
|
-
require 'stringio'
|
21
|
+
require "minitest/autorun"
|
24
22
|
|
25
23
|
require 'teapot/substitutions'
|
26
24
|
|
27
|
-
class TestSubstitutions < Test
|
25
|
+
class TestSubstitutions < MiniTest::Test
|
28
26
|
def test_symobolic_substitutions
|
29
27
|
input = <<-EOF
|
30
28
|
$FOO $BAR
|
data/test/test_teapot.rb
CHANGED
@@ -18,13 +18,11 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require
|
22
|
-
require 'test/unit'
|
23
|
-
require 'stringio'
|
21
|
+
require "minitest/autorun"
|
24
22
|
|
25
23
|
require 'teapot/context'
|
26
24
|
|
27
|
-
class TestConfig < Test
|
25
|
+
class TestConfig < MiniTest::Test
|
28
26
|
ROOT = Pathname.new(__FILE__).dirname
|
29
27
|
|
30
28
|
def test_context
|
metadata
CHANGED
@@ -1,88 +1,131 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teapot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rexec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.6.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.6.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: trollop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: system
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.1.3
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.1.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: graphviz
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.3'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
81
123
|
- !ruby/object:Gem::Version
|
82
124
|
version: '0'
|
83
125
|
description: "\tTeapot is a tool for managing complex cross-platform builds. It provides\n\tadvanced
|
84
|
-
dependency management
|
85
|
-
|
126
|
+
package-based dependency management with a single configuration file\n\tper project.
|
127
|
+
It can fetch, list, build, visualise and create projects, and\n\thas been designed
|
128
|
+
from the ground up to support collaborative decentralised\n\tdevelopment.\n"
|
86
129
|
email:
|
87
130
|
- samuel.williams@oriontransfer.co.nz
|
88
131
|
executables:
|
@@ -90,8 +133,8 @@ executables:
|
|
90
133
|
extensions: []
|
91
134
|
extra_rdoc_files: []
|
92
135
|
files:
|
93
|
-
- .gitignore
|
94
|
-
- .travis.yml
|
136
|
+
- ".gitignore"
|
137
|
+
- ".travis.yml"
|
95
138
|
- Gemfile
|
96
139
|
- README.md
|
97
140
|
- Rakefile
|
@@ -159,17 +202,17 @@ require_paths:
|
|
159
202
|
- lib
|
160
203
|
required_ruby_version: !ruby/object:Gem::Requirement
|
161
204
|
requirements:
|
162
|
-
- -
|
205
|
+
- - ">="
|
163
206
|
- !ruby/object:Gem::Version
|
164
207
|
version: 1.9.3
|
165
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
209
|
requirements:
|
167
|
-
- -
|
210
|
+
- - ">="
|
168
211
|
- !ruby/object:Gem::Version
|
169
212
|
version: '0'
|
170
213
|
requirements: []
|
171
214
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.
|
215
|
+
rubygems_version: 2.2.2
|
173
216
|
signing_key:
|
174
217
|
specification_version: 4
|
175
218
|
summary: Teapot is a tool for managing complex cross-platform builds.
|