teapot 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/teapot +26 -5
- data/lib/teapot/context.rb +2 -1
- data/lib/teapot/controller/fetch.rb +5 -1
- data/lib/teapot/controller/list.rb +2 -0
- data/lib/teapot/controller/run.rb +1 -1
- data/lib/teapot/loader.rb +5 -5
- data/lib/teapot/version.rb +1 -1
- data/test/teapot.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjBiNDRhMDhhMjJiYzRhYmZlMDg3ZTM0ZTIwOTY0MmViNzllODA3Mg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTBhNjgxOTg4OWRiYTY5ZjA5Y2ZhZmQwYTI5YTQzYTEzYzY1ZDkxOA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmFlN2NmMjRjYmMwZGYyNzJlZWI4MjVjNDZiNjVkOTc2NmI4OTA1MzdmNWFj
|
10
|
+
MzkzYjE3ZjY4NjRlNjNlZGIwOTYxYmFhZTJmYmNhNDU0NjYzZGY0ZGM2OTRl
|
11
|
+
NGIwYjA1MWVlY2YyODgwMGJkNWMzZDNkZjUyZDJhY2E3YjBlMTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YWU4YjJhZjE5NWRlZjRmZTAxNjVlOWIzMmMxMGMzZDgxNzQ5YWJhZGM2MzRm
|
14
|
+
N2Q4YmUyY2QyNGM3MWRkM2UwOTdlM2ZlYjEwODI0NTQ4NjBlNGE4ODczNzEy
|
15
|
+
ZmU3YmM4NTNmMjYxN2YxZThiNjVkZWZlZmM2YTA0ZTYxNDliYTQ=
|
data/bin/teapot
CHANGED
@@ -29,12 +29,13 @@ require 'teapot/controller/generate'
|
|
29
29
|
require 'teapot/controller/list'
|
30
30
|
require 'teapot/controller/run'
|
31
31
|
|
32
|
-
require '
|
32
|
+
require 'time'
|
33
33
|
require 'trollop'
|
34
34
|
|
35
35
|
OPTIONS = Trollop::options do
|
36
36
|
opt :only, "Only compiled direct dependencies."
|
37
37
|
opt :in, "Work in the given directory.", :type => :string
|
38
|
+
opt :unlock, "Don't use package lockfile when fetching."
|
38
39
|
|
39
40
|
opt :configuration, "Specify a specific build configuration.", :type => :string
|
40
41
|
end
|
@@ -94,24 +95,45 @@ module Application
|
|
94
95
|
end
|
95
96
|
end
|
96
97
|
|
98
|
+
def track_time
|
99
|
+
start_time = Time.now
|
100
|
+
|
101
|
+
yield
|
102
|
+
|
103
|
+
ensure
|
104
|
+
end_time = Time.now
|
105
|
+
elapsed_time = end_time - start_time
|
106
|
+
|
107
|
+
$stdout.flush
|
108
|
+
$stderr.puts ("Elapsed Time: %0.3fs" % elapsed_time).color(:magenta)
|
109
|
+
end
|
110
|
+
|
97
111
|
valid_actions = (Application.public_methods - Module.methods).collect(&:to_s)
|
98
112
|
action = ARGV.shift
|
99
113
|
|
100
114
|
# Check that the command was invoked correctly...
|
101
115
|
unless action and valid_actions.include?(action)
|
102
116
|
puts "You must specify an action from: #{valid_actions.join(', ')}".color(:red)
|
117
|
+
|
103
118
|
exit -1
|
104
119
|
end
|
105
120
|
|
106
|
-
|
121
|
+
track_time do
|
107
122
|
begin
|
108
123
|
Application.send(action.to_sym)
|
109
124
|
rescue Teapot::NonexistantTeapotError => error
|
110
125
|
$stderr.puts error.message.color(:red)
|
126
|
+
|
127
|
+
exit -2
|
111
128
|
rescue Teapot::IncompatibleTeapotError => error
|
112
129
|
$stderr.puts error.message.color(:red)
|
130
|
+
$stderr.puts "Supported minimum version #{Teapot::MINIMUM_LOADER_VERSION.dump} to #{Teapot::LOADER_VERSION.dump}."
|
131
|
+
|
132
|
+
exit -3
|
113
133
|
rescue Teapot::Commands::CommandError => error
|
114
134
|
$stderr.puts error.message.color(:red)
|
135
|
+
|
136
|
+
exit -4
|
115
137
|
rescue Teapot::Dependency::UnresolvedDependencyError => error
|
116
138
|
$stderr.puts "Unresolved dependencies:"
|
117
139
|
|
@@ -128,8 +150,7 @@ time = Benchmark.measure do
|
|
128
150
|
end
|
129
151
|
|
130
152
|
$stderr.puts "Cannot continue due to unresolved dependencies!".color(:red)
|
153
|
+
|
154
|
+
exit -5
|
131
155
|
end
|
132
156
|
end
|
133
|
-
|
134
|
-
$stdout.flush
|
135
|
-
$stderr.puts time.format("Elapsed Time: %r").color(:magenta)
|
data/lib/teapot/context.rb
CHANGED
@@ -154,7 +154,8 @@ module Teapot
|
|
154
154
|
packages.collect do |package|
|
155
155
|
begin
|
156
156
|
definitions = load(package)
|
157
|
-
rescue NonexistantTeapotError
|
157
|
+
rescue NonexistantTeapotError, IncompatibleTeapotError
|
158
|
+
# If the package doesn't exist or the teapot version is too old, it failed:
|
158
159
|
failed_to_load << package
|
159
160
|
end
|
160
161
|
end
|
@@ -86,7 +86,11 @@ module Teapot
|
|
86
86
|
destination_path.make_symlink(local_path)
|
87
87
|
end
|
88
88
|
elsif package.external?
|
89
|
-
package_lock =
|
89
|
+
package_lock = nil
|
90
|
+
|
91
|
+
unless @options[:unlock]
|
92
|
+
package_lock = lock_store.transaction(true){|store| store[package.name]}
|
93
|
+
end
|
90
94
|
|
91
95
|
log "Fetching #{package}...".color(:cyan)
|
92
96
|
|
data/lib/teapot/loader.rb
CHANGED
@@ -30,8 +30,8 @@ module Teapot
|
|
30
30
|
MINIMUM_LOADER_VERSION = "0.8"
|
31
31
|
|
32
32
|
class IncompatibleTeapotError < StandardError
|
33
|
-
def initialize(version)
|
34
|
-
super "
|
33
|
+
def initialize(package, version)
|
34
|
+
super "Unsupported teapot_version #{version} in #{package.path}!"
|
35
35
|
end
|
36
36
|
|
37
37
|
attr :version
|
@@ -39,7 +39,7 @@ module Teapot
|
|
39
39
|
|
40
40
|
class NonexistantTeapotError < StandardError
|
41
41
|
def initialize(path)
|
42
|
-
super "Could not
|
42
|
+
super "Could not read file at #{path}!"
|
43
43
|
end
|
44
44
|
|
45
45
|
attr :path
|
@@ -74,7 +74,7 @@ module Teapot
|
|
74
74
|
if version >= MINIMUM_LOADER_VERSION && version <= LOADER_VERSION
|
75
75
|
@version = version
|
76
76
|
else
|
77
|
-
raise IncompatibleTeapotError.new(version)
|
77
|
+
raise IncompatibleTeapotError.new(package, version)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -128,7 +128,7 @@ module Teapot
|
|
128
128
|
self.instance_eval(absolute_path.read, absolute_path.to_s)
|
129
129
|
|
130
130
|
if @version == nil
|
131
|
-
raise IncompatibleTeapotError.new("<unspecified>")
|
131
|
+
raise IncompatibleTeapotError.new(@package, "<unspecified>")
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
data/lib/teapot/version.rb
CHANGED
data/test/teapot.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teapot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|