teapot 1.0.2 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 82c11fa3631f5f64272f82742fc2e2a605915050
4
- data.tar.gz: 482fc59f950b17490993fa10561290beb0963369
3
+ metadata.gz: a4b9985b5523ab61e6016f73b9d1a7de0a424317
4
+ data.tar.gz: f699a936b8c6f38b761b80902c628ba054eaa8c1
5
5
  SHA512:
6
- metadata.gz: c817753effc821940fc78ec441d4534414392e59c34f6d1ce3c8ad28d64941ca25bd257d1095545a965b37b7a8f7b6f470ce8fcaa59e2adcf674a41bd6ec9e8e
7
- data.tar.gz: 4fc45e4498e1ac51e42cc9bed6fca53c6629af3dac8c3edb537d8a62faa425a0f9b91030020e76b0347fd16424e2e94aafb4ade7759c3cd57b909f556aa7223f
6
+ metadata.gz: 5da3b8ebc748e36b9bedc8731c6c42c5e783061bc30dc3f77f003af4001b7f8076ee5b9cebd4154325af554a4125cba6e12c308419a4688935b277bd589ca7a6
7
+ data.tar.gz: 14f418012735d4e469f919779ed8c5ab4f7048ac33cf0357ae7d8f6f7603e0699b29a41021389a982e6401c8a649a05ded1539bc90954ca9459c2aba8a8211ba
@@ -4,10 +4,14 @@ before_install:
4
4
  # For testing purposes:
5
5
  - git config --local user.name "Samuel Williams"
6
6
  rvm:
7
- - 2.0.0
8
7
  - 2.1.8
9
8
  - 2.2.4
10
9
  - 2.3.0
11
10
  - ruby-head
12
11
  - rbx-2
13
12
  env: COVERAGE=true
13
+ matrix:
14
+ fast_finish: true
15
+ allow_failures:
16
+ - rvm: ruby-head
17
+ - rvm: "rbx-2"
data/bin/teapot CHANGED
@@ -34,23 +34,6 @@ require 'teapot/repository'
34
34
  require 'time'
35
35
  require 'trollop'
36
36
 
37
- OPTIONS = Trollop::options do
38
- version "teapot v#{Teapot::VERSION}"
39
-
40
- opt :configuration, "Specify a specific build configuration.", :type => :string
41
-
42
- opt :only, "Only compiled direct dependencies."
43
- opt :continuous, "Run the build graph continually.", :type => :boolean, :short => :n
44
-
45
- opt :in, "Work in the given directory.", :type => :string
46
- opt :unlock, "Don't use package lockfile when fetching."
47
-
48
- opt :force, "Force the operation if it would otherwise be be stopped due to a warning."
49
-
50
- opt :verbose, "Verbose output and error backtraces.", :type => :boolean
51
- opt :version, "Print version and exit", :short => :none
52
- end
53
-
54
37
  def make_controller(root = nil)
55
38
  root ||= OPTIONS[:in] || Dir.getwd
56
39
  Teapot::Controller.new(root, OPTIONS)
@@ -66,10 +49,14 @@ module Application
66
49
  make_controller.fetch
67
50
  end
68
51
 
69
- def self.build(targets = ARGV)
52
+ def self.build(targets = ARGV.slice!(0..-1))
70
53
  make_controller.build(targets)
71
54
  end
72
-
55
+
56
+ def self.exec(target = ARGV.shift)
57
+ make_controller.build([target])
58
+ end
59
+
73
60
  def self.list(only = ARGV)
74
61
  if only.size > 0
75
62
  make_controller.list(Set.new(only))
@@ -86,7 +73,7 @@ module Application
86
73
  project_name = ARGV.shift
87
74
  project_directory = project_name.gsub(/\s+/, '-').downcase
88
75
  source = ARGV.shift
89
- packages = ARGV
76
+ packages = ARGV.slice!(0..-1)
90
77
 
91
78
  root = Build::Files::Path.join(Dir.getwd, project_directory)
92
79
 
@@ -108,6 +95,10 @@ module Application
108
95
  end
109
96
  end
110
97
 
98
+ def valid_actions
99
+ (Application.public_methods - Module.methods).collect(&:to_s)
100
+ end
101
+
111
102
  def track_time
112
103
  start_time = Time.now
113
104
 
@@ -117,10 +108,31 @@ ensure
117
108
  elapsed_time = end_time - start_time
118
109
 
119
110
  $stdout.flush
120
- $stderr.puts ("Elapsed Time: %0.3fs" % elapsed_time).color(:magenta)
111
+ $stderr.puts Rainbow("Elapsed Time: %0.3fs" % elapsed_time).magenta
112
+ end
113
+
114
+ OPTIONS = Trollop::options do
115
+ banner Rainbow("Teapot: a decentralised package manager and build tool.").bright.blue
116
+ version "teapot v#{Teapot::VERSION}"
117
+
118
+ opt :configuration, "Specify a specific build configuration.", :type => :string
119
+
120
+ opt :limit, "Limit build to <i> concurrent processes at once where possible", :type => :integer
121
+
122
+ opt :only, "Only compiled direct dependencies."
123
+ opt :continuous, "Run the build graph continually (experimental).", :type => :boolean, :short => :n
124
+
125
+ opt :in, "Work in the given directory.", :type => :string
126
+ opt :unlock, "Don't use package lockfile when fetching."
127
+
128
+ opt :force, "Force the operation if it would otherwise be be stopped due to a warning."
129
+
130
+ opt :verbose, "Verbose output and error backtraces.", :type => :boolean
131
+ opt :version, "Print version and exit", :short => :none
132
+
133
+ opt :help, "Show this message"
121
134
  end
122
135
 
123
- valid_actions = (Application.public_methods - Module.methods).collect(&:to_s)
124
136
  action = ARGV.shift
125
137
 
126
138
  # Check that the command was invoked correctly...
@@ -68,7 +68,7 @@ module Teapot
68
68
  ordered = context.direct_targets(ordered)
69
69
  end
70
70
 
71
- controller = Build::Controller.new(logger: self.logger) do |controller|
71
+ controller = Build::Controller.new(logger: self.logger, limit: @options[:limit]) do |controller|
72
72
  ordered.each do |resolution|
73
73
  target = resolution.provider
74
74
 
@@ -85,7 +85,7 @@ module Teapot
85
85
  # We need to catch interrupt here, and exit with the correct exit code:
86
86
  begin
87
87
  controller.run do |walker|
88
- show_dependencies(walker)
88
+ # show_dependencies(walker)
89
89
 
90
90
  # Only run once is asked:
91
91
  unless @options[:continuous]
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Teapot
22
- VERSION = "1.0.2"
22
+ VERSION = "1.0.3"
23
23
  end
@@ -26,16 +26,16 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.has_rdoc = 'yard'
28
28
 
29
- spec.required_ruby_version = '>= 2.0'
29
+ spec.required_ruby_version = '>= 2.1'
30
30
 
31
31
  spec.add_dependency "rainbow", "~> 2.0.0"
32
32
  spec.add_dependency "trollop", "~> 2.1"
33
33
 
34
34
  spec.add_dependency "system", "~> 0.1.3"
35
35
 
36
- spec.add_dependency "graphviz", "~> 0.2.0"
36
+ spec.add_dependency "graphviz", "~> 0.3.0"
37
37
 
38
- spec.add_dependency "build", "~> 1.0.6"
38
+ spec.add_dependency "build", "~> 1.0.7"
39
39
 
40
40
  # This could be a good option in the future for teapot fetch:
41
41
  #spec.add_dependency "rugged"
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: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.2.0
61
+ version: 0.3.0
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: 0.2.0
68
+ version: 0.3.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: build
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.0.6
75
+ version: 1.0.7
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.0.6
82
+ version: 1.0.7
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -197,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: '2.0'
200
+ version: '2.1'
201
201
  required_rubygems_version: !ruby/object:Gem::Requirement
202
202
  requirements:
203
203
  - - ">="
@@ -205,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
205
  version: '0'
206
206
  requirements: []
207
207
  rubyforge_project:
208
- rubygems_version: 2.5.1
208
+ rubygems_version: 2.2.2
209
209
  signing_key:
210
210
  specification_version: 4
211
211
  summary: Teapot is a tool for managing complex cross-platform builds.