warningshot 0.9.4 → 0.9.5
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/CHANGELOG +8 -0
- data/CONTRIBUTORS +2 -1
- data/README +86 -6
- data/Rakefile +4 -3
- data/TODO +1 -147
- data/bin/warningshot +11 -7
- data/lib/resolvers/core_lib_resolver.rb +2 -3
- data/lib/resolvers/directory_resolver.rb +1 -1
- data/lib/resolvers/file_resolver.rb +35 -17
- data/lib/resolvers/gem_resolver.rb +81 -60
- data/lib/resolvers/integrity_resolver.rb +10 -11
- data/lib/resolvers/manual_resolver.rb +15 -3
- data/lib/resolvers/permission_resolver.rb +6 -8
- data/lib/resolvers/symlink_resolver.rb +13 -8
- data/lib/resolvers/url_resolver.rb +28 -41
- data/lib/warningshot.rb +10 -7
- data/lib/warningshot/config.rb +254 -0
- data/lib/{warning_shot → warningshot}/dependency_resolver.rb +38 -17
- data/lib/{warning_shot → warningshot}/growl.rb +2 -0
- data/lib/{warning_shot → warningshot}/logger.rb +2 -0
- data/lib/{warning_shot → warningshot}/resolver.rb +177 -89
- data/lib/warningshot/suite.rb +4 -0
- data/lib/{warning_shot → warningshot}/template_generator.rb +4 -1
- data/lib/{warning_shot → warningshot}/version.rb +3 -1
- data/lib/warningshot/warning_shot.rb +187 -0
- data/tasks/gemspec.rb +3 -16
- data/tasks/yard.rb +1 -1
- data/templates/gems.yml +1 -0
- data/test/data/faux_test.yml +5 -0
- data/test/data/faux_test_resolver.rb +21 -0
- data/test/data/mock_resolver.rb +11 -5
- data/test/log/warningshot.log +3051 -532
- data/test/spec/unit/resolvers/core_lib_resolver_spec.rb +1 -1
- data/test/spec/unit/resolvers/directory_resolver_spec.rb +1 -1
- data/test/spec/unit/resolvers/file_resolver_spec.rb +9 -13
- data/test/spec/unit/resolvers/gem_resolver_spec.rb +108 -32
- data/test/spec/unit/resolvers/integrity_resolver_spec.rb +6 -6
- data/test/spec/unit/resolvers/permission_resolver_spec.rb +2 -2
- data/test/spec/unit/resolvers/symlink_resolver_spec.rb +8 -1
- data/test/spec/unit/resolvers/url_resolver_spec.rb +10 -10
- data/test/spec/unit/warningshot/config_spec.rb +57 -0
- data/test/spec/unit/{warning_shot → warningshot}/dependency_resolver_spec.rb +18 -9
- data/test/spec/unit/{warning_shot → warningshot}/resolver_spec.rb +54 -79
- data/test/spec/unit/{warning_shot → warningshot}/template_generator_spec.rb +1 -1
- data/test/spec/unit/{warning_shot → warningshot}/version_spec.rb +0 -0
- data/test/spec/unit/{warning_shot → warningshot}/warning_shot_spec.rb +0 -0
- metadata +24 -26
- data/lib/warning_shot/config.rb +0 -132
- data/lib/warning_shot/warning_shot.rb +0 -130
- data/test/spec/spec.opts.zoiks +0 -0
- data/test/spec/unit/warning_shot/config_spec.rb +0 -35
@@ -1,10 +1,10 @@
|
|
1
1
|
describe WarningShot::DependencyResolver do
|
2
2
|
before :all do
|
3
|
-
@config = {
|
3
|
+
@config = WarningShot::Config.create({
|
4
4
|
:config_paths => [$test_data],
|
5
5
|
:environment => 'rspec',
|
6
6
|
:log_path => $log_file
|
7
|
-
}
|
7
|
+
})
|
8
8
|
|
9
9
|
end
|
10
10
|
|
@@ -13,13 +13,7 @@ describe WarningShot::DependencyResolver do
|
|
13
13
|
pending
|
14
14
|
end
|
15
15
|
|
16
|
-
it 'should create a dependency tree from a set of config files' do
|
17
|
-
@config = {
|
18
|
-
:config_paths => [$test_data],
|
19
|
-
:environment => 'rspec',
|
20
|
-
:log_path => $log_file
|
21
|
-
}
|
22
|
-
|
16
|
+
it 'should create a dependency tree from a set of config files' do
|
23
17
|
dr = WarningShot::DependencyResolver.new(@config)
|
24
18
|
|
25
19
|
dr.dependency_tree[:mock].empty?.should be(false)
|
@@ -36,7 +30,22 @@ describe WarningShot::DependencyResolver do
|
|
36
30
|
dr.stats.class.should be(Hash)
|
37
31
|
end
|
38
32
|
|
33
|
+
it 'should ignore resolvers that dont have dependencies registered' do
|
34
|
+
pending
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should ignore disabled resolvers' do
|
38
|
+
pending
|
39
|
+
end
|
40
|
+
|
39
41
|
it 'should be able to run a set of resolvers' do
|
42
|
+
config = WarningShot::Config.create({
|
43
|
+
:config_paths => [$test_data],
|
44
|
+
:environment => 'rspec',
|
45
|
+
:log_path => $log_file,
|
46
|
+
:oload => :faux_test
|
47
|
+
})
|
48
|
+
|
40
49
|
pending
|
41
50
|
end
|
42
51
|
|
@@ -1,9 +1,10 @@
|
|
1
|
+
require WarningShot.root / 'lib' / 'warningshot' / 'suite'
|
1
2
|
require $test_data / 'mock_resolver'
|
2
3
|
|
3
4
|
describe WarningShot::Resolver do
|
4
5
|
it 'should provide a base set of resolvers' do
|
5
|
-
WarningShot::Resolver.
|
6
|
-
WarningShot::Resolver.
|
6
|
+
WarningShot::Resolver.descendants.class.should be(Array)
|
7
|
+
WarningShot::Resolver.descendants.empty?.should be(false)
|
7
8
|
end
|
8
9
|
|
9
10
|
it 'should allow a resolver to set a order' do
|
@@ -26,25 +27,31 @@ describe WarningShot::Resolver do
|
|
26
27
|
MockResolver.description "An awesome mock resolver"
|
27
28
|
MockResolver.description.should == "An awesome mock resolver"
|
28
29
|
end
|
30
|
+
|
31
|
+
it 'should provide Resolver#add_dependency' do
|
32
|
+
pending
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should disabled specified resolvers based on #add_dependency' do
|
36
|
+
pending
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should disabled specified test & resolvers based on #add_dependency' do
|
40
|
+
pending
|
41
|
+
end
|
29
42
|
|
30
43
|
it 'should allow the CLI to be extended' do
|
31
|
-
MockResolver.cli(
|
32
|
-
:
|
33
|
-
|
34
|
-
:description => "Test extending the CLI",
|
35
|
-
:default => 'whatever',
|
36
|
-
:name => 'rspec_test',
|
37
|
-
:type => String,
|
38
|
-
:default_desc => "Default: whatever"
|
39
|
-
)
|
44
|
+
MockResolver.cli("-t", "--test=STRING", "Test extending the CLI") do |val|
|
45
|
+
options[:rspec_test] = val
|
46
|
+
end
|
40
47
|
|
41
|
-
WarningShot.
|
48
|
+
WarningShot::Config::PARSER.to_s.include?("Test extending the CLI").should be(true)
|
42
49
|
end
|
43
50
|
|
44
51
|
it 'should be able to cast YAML data to an Object the resolver can work with' do
|
45
52
|
MockDependency = Struct.new :more, :less
|
46
53
|
|
47
|
-
MockResolver.
|
54
|
+
MockResolver.typecast do |dep|
|
48
55
|
MockDependency.new dep[:more], dep[:less]
|
49
56
|
end
|
50
57
|
|
@@ -81,7 +88,7 @@ describe WarningShot::Resolver do
|
|
81
88
|
|
82
89
|
it 'should be able to register a conditional test' do
|
83
90
|
is_test_env = lambda{ |dependency|
|
84
|
-
WarningShot.environment == 'test'
|
91
|
+
WarningShot::Config.create()[:environment] == 'test'
|
85
92
|
}
|
86
93
|
MockResolver.flush_tests!
|
87
94
|
MockResolver.register :test, :if => is_test_env do |dependency|
|
@@ -162,7 +169,7 @@ describe WarningShot::Resolver do
|
|
162
169
|
|
163
170
|
it 'should be able to register a conditional resolution' do
|
164
171
|
is_test_env = lambda{ |dependency|
|
165
|
-
WarningShot.environment == 'production'
|
172
|
+
WarningShot::Config.create()[:environment] == 'production'
|
166
173
|
}
|
167
174
|
MockResolver.flush_resolutions!
|
168
175
|
MockResolver.register :resolution, :if => is_test_env do |dependency|
|
@@ -263,85 +270,53 @@ describe WarningShot::Resolver do
|
|
263
270
|
MockResolver.resolutions(:number_resolution1)[:unless].call.should be(true)
|
264
271
|
end
|
265
272
|
|
266
|
-
it 'should increment #passed if the test passed' do
|
267
|
-
pending
|
268
|
-
end
|
269
|
-
|
270
|
-
it 'should increment #failed if the test failed' do
|
271
|
-
pending
|
272
|
-
end
|
273
|
-
|
274
|
-
it 'should increment #resolved if the resolution passed' do
|
275
|
-
pending
|
276
|
-
end
|
277
|
-
|
278
|
-
it 'should increment #unresolved if the resolution was unresolved' do
|
279
|
-
pending
|
280
|
-
end
|
281
|
-
|
282
273
|
it 'should be able to determine if a test passed' do
|
283
|
-
MockResolver.
|
284
|
-
MockResolver.
|
285
|
-
|
286
|
-
test_meta = {
|
287
|
-
:name => :process_block_test,
|
288
|
-
:test => lambda {|dep| dep[:fav_color] == :blue}
|
289
|
-
}
|
290
|
-
|
291
|
-
dep = {:fav_color => :blue}
|
274
|
+
MockResolver.flush!
|
275
|
+
MockResolver.register(:test,:name=>:fav_color_test) {|dep| dep.value == 'blue'}
|
292
276
|
|
293
|
-
MockResolver.new.
|
277
|
+
mock_resolver = MockResolver.new(WarningShot::Config.create,'blue')
|
278
|
+
mock_resolver.test!
|
279
|
+
mock_resolver.passed.length.should be(1)
|
294
280
|
end
|
295
281
|
|
296
282
|
it 'should be able to determine if a test failed' do
|
297
|
-
MockResolver.
|
298
|
-
MockResolver.
|
283
|
+
MockResolver.flush!
|
284
|
+
MockResolver.register(:test,:name=>:fav_color_test) {|dep| dep.value == 'blue'}
|
299
285
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
}
|
304
|
-
|
305
|
-
dep = {:fav_color => :red}
|
306
|
-
|
307
|
-
MockResolver.new.send(:process_block, :test, dep, test_meta).should be(false)
|
286
|
+
mock_resolver = MockResolver.new(WarningShot::Config.create,'red')
|
287
|
+
mock_resolver.test!
|
288
|
+
mock_resolver.failed.length.should be(1)
|
308
289
|
end
|
309
290
|
|
310
291
|
it 'should be able to determine if a resolution passed' do
|
311
|
-
MockResolver.
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
:resolution => lambda {|dep|
|
317
|
-
dep[:fav_color] = :blue
|
318
|
-
dep[:fav_color] == :blue
|
319
|
-
}
|
292
|
+
MockResolver.flush!
|
293
|
+
|
294
|
+
MockResolver.register(:resolution,:name => :det_res_passed){ |dep|
|
295
|
+
dep.value = :blue
|
296
|
+
dep.value == :blue
|
320
297
|
}
|
321
298
|
|
322
|
-
|
323
|
-
|
324
|
-
|
299
|
+
mock_resolver = MockResolver.new(WarningShot::Config.create,'red')
|
300
|
+
mock_resolver.test!
|
301
|
+
mock_resolver.resolve!
|
302
|
+
mock_resolver.resolved.length.should be(1)
|
325
303
|
end
|
326
304
|
|
327
305
|
it 'should be able to determine if a resolution failed' do
|
328
|
-
MockResolver.
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
:resolution => lambda {|dep|
|
334
|
-
begin
|
335
|
-
dep[:fav_color] = :blue
|
336
|
-
rescue Exception
|
337
|
-
# nada
|
338
|
-
end
|
339
|
-
dep[:fav_color] == :blue
|
340
|
-
}
|
306
|
+
MockResolver.flush!
|
307
|
+
|
308
|
+
|
309
|
+
MockResolver.register(:resolution,:name => :det_res_failed){ |dep|
|
310
|
+
dep.value == :blue
|
341
311
|
}
|
342
312
|
|
343
|
-
|
344
|
-
|
345
|
-
|
313
|
+
mock_resolver = MockResolver.new(WarningShot::Config.create,'red')
|
314
|
+
mock_resolver.test!
|
315
|
+
mock_resolver.resolve!
|
316
|
+
mock_resolver.unresolved.length.should be(1)
|
317
|
+
end
|
318
|
+
|
319
|
+
it 'should not try to resolve a dependency if it has passed' do
|
320
|
+
pending
|
346
321
|
end
|
347
322
|
end
|
@@ -14,7 +14,7 @@ describe WarningShot::TemplateGenerator do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should have generate YAML config files" do
|
17
|
-
yaml_files = Dir[@test_path / WarningShot::
|
17
|
+
yaml_files = Dir[@test_path / WarningShot::RecipeExt]
|
18
18
|
yaml_files.empty?.should be(false)
|
19
19
|
end
|
20
20
|
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warningshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cory ODaniel
|
@@ -13,7 +13,7 @@ date: 2008-10-15 00:00:00 -07:00
|
|
13
13
|
default_executable: warningshot
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: WarningShot
|
16
|
+
description: WarningShot provides a simple YAML configurable interface to define dependencies that an application or machine depends on, then it builds them for you.
|
17
17
|
email: warningshot@coryodaniel.com.com
|
18
18
|
executables:
|
19
19
|
- warningshot
|
@@ -34,6 +34,8 @@ files:
|
|
34
34
|
- bin/ws-stage.bat
|
35
35
|
- bin/ws-stage.sh
|
36
36
|
- test/data
|
37
|
+
- test/data/faux_test.yml
|
38
|
+
- test/data/faux_test_resolver.rb
|
37
39
|
- test/data/mock.yaml
|
38
40
|
- test/data/mock.yml
|
39
41
|
- test/data/mock_resolver.rb
|
@@ -46,11 +48,6 @@ files:
|
|
46
48
|
- test/log/warningshot.log
|
47
49
|
- test/output
|
48
50
|
- test/spec
|
49
|
-
- test/spec/integration
|
50
|
-
- test/spec/integration/core_ext
|
51
|
-
- test/spec/integration/resolvers
|
52
|
-
- test/spec/integration/warning_shot
|
53
|
-
- test/spec/spec.opts.zoiks
|
54
51
|
- test/spec/spec_helper.rb
|
55
52
|
- test/spec/unit
|
56
53
|
- test/spec/unit/core_ext
|
@@ -64,13 +61,13 @@ files:
|
|
64
61
|
- test/spec/unit/resolvers/permission_resolver_spec.rb
|
65
62
|
- test/spec/unit/resolvers/symlink_resolver_spec.rb
|
66
63
|
- test/spec/unit/resolvers/url_resolver_spec.rb
|
67
|
-
- test/spec/unit/
|
68
|
-
- test/spec/unit/
|
69
|
-
- test/spec/unit/
|
70
|
-
- test/spec/unit/
|
71
|
-
- test/spec/unit/
|
72
|
-
- test/spec/unit/
|
73
|
-
- test/spec/unit/
|
64
|
+
- test/spec/unit/warningshot
|
65
|
+
- test/spec/unit/warningshot/config_spec.rb
|
66
|
+
- test/spec/unit/warningshot/dependency_resolver_spec.rb
|
67
|
+
- test/spec/unit/warningshot/resolver_spec.rb
|
68
|
+
- test/spec/unit/warningshot/template_generator_spec.rb
|
69
|
+
- test/spec/unit/warningshot/version_spec.rb
|
70
|
+
- test/spec/unit/warningshot/warning_shot_spec.rb
|
74
71
|
- lib/core_ext
|
75
72
|
- lib/core_ext/hash.rb
|
76
73
|
- lib/core_ext/kernel.rb
|
@@ -86,15 +83,16 @@ files:
|
|
86
83
|
- lib/resolvers/permission_resolver.rb
|
87
84
|
- lib/resolvers/symlink_resolver.rb
|
88
85
|
- lib/resolvers/url_resolver.rb
|
89
|
-
- lib/
|
90
|
-
- lib/
|
91
|
-
- lib/
|
92
|
-
- lib/
|
93
|
-
- lib/
|
94
|
-
- lib/
|
95
|
-
- lib/
|
96
|
-
- lib/
|
97
|
-
- lib/
|
86
|
+
- lib/warningshot
|
87
|
+
- lib/warningshot/config.rb
|
88
|
+
- lib/warningshot/dependency_resolver.rb
|
89
|
+
- lib/warningshot/growl.rb
|
90
|
+
- lib/warningshot/logger.rb
|
91
|
+
- lib/warningshot/resolver.rb
|
92
|
+
- lib/warningshot/suite.rb
|
93
|
+
- lib/warningshot/template_generator.rb
|
94
|
+
- lib/warningshot/version.rb
|
95
|
+
- lib/warningshot/warning_shot.rb
|
98
96
|
- lib/warningshot.rb
|
99
97
|
- tasks/gemspec.rb
|
100
98
|
- tasks/rpsec.rb
|
@@ -114,7 +112,7 @@ files:
|
|
114
112
|
- images/warningshot_green.png
|
115
113
|
- images/warningshot_red.png
|
116
114
|
has_rdoc: true
|
117
|
-
homepage: http://
|
115
|
+
homepage: http://github.com/coryodaniel/warningshot
|
118
116
|
post_install_message:
|
119
117
|
rdoc_options: []
|
120
118
|
|
@@ -135,9 +133,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
133
|
requirements: []
|
136
134
|
|
137
135
|
rubyforge_project:
|
138
|
-
rubygems_version: 1.
|
136
|
+
rubygems_version: 1.3.1
|
139
137
|
signing_key:
|
140
138
|
specification_version: 2
|
141
|
-
summary: WarningShot
|
139
|
+
summary: WarningShot provides a simple YAML configurable interface to define dependencies that an application or machine depends on, then it builds them for you.
|
142
140
|
test_files: []
|
143
141
|
|
data/lib/warning_shot/config.rb
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
# I pretty much goinked this from merb, you love merb, merb loves you.
|
2
|
-
# http://merbivore.com
|
3
|
-
|
4
|
-
module WarningShot
|
5
|
-
class Config
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def defaults
|
9
|
-
@defaults ||= {
|
10
|
-
:environment => 'development',
|
11
|
-
:resolve => false,
|
12
|
-
:config_paths => ['.' / 'config' / 'warningshot', '~' / '.warningshot'],
|
13
|
-
:application => '.',
|
14
|
-
:log_path => '.' / 'log' / 'warningshot.log',
|
15
|
-
:log_level => :info,
|
16
|
-
:growl => false,
|
17
|
-
:verbose => false,
|
18
|
-
:colorize => true,
|
19
|
-
:resolvers => ['~' / '.warningshot' / '*.rb']
|
20
|
-
}
|
21
|
-
end
|
22
|
-
|
23
|
-
def use
|
24
|
-
@configuration ||= {}
|
25
|
-
yield @configuration
|
26
|
-
@configuration = defaults.merge(@configuration)
|
27
|
-
end
|
28
|
-
|
29
|
-
def [](key)
|
30
|
-
(@configuration||={})[key]
|
31
|
-
end
|
32
|
-
|
33
|
-
def []=(key,val)
|
34
|
-
(@configuration||={})[key] = val
|
35
|
-
#@configuration[key] = val
|
36
|
-
end
|
37
|
-
|
38
|
-
def setup(settings = {})
|
39
|
-
@configuration = defaults.merge(settings)
|
40
|
-
end
|
41
|
-
|
42
|
-
attr_accessor :configuration
|
43
|
-
|
44
|
-
def parse_args(argv = ARGV)
|
45
|
-
@configuration ||= {}
|
46
|
-
options = {}
|
47
|
-
options[:environment] = ENV["WARNING_SHOT_ENV"] if ENV["WARNING_SHOT_ENV"]
|
48
|
-
|
49
|
-
WarningShot.parser.banner = <<-BANNER
|
50
|
-
WarningShot v. #{WarningShot::VERSION}
|
51
|
-
Dependency Resolution Framework
|
52
|
-
|
53
|
-
Usage: warningshot [options]
|
54
|
-
BANNER
|
55
|
-
WarningShot.parser.separator '*'*80
|
56
|
-
|
57
|
-
WarningShot.parser.on("-e", "--environment=STRING", String, "Environment to test in","Default: #{defaults[:environment]}") do |env|
|
58
|
-
options[:environment] = env
|
59
|
-
end
|
60
|
-
WarningShot.parser.on("--resolve","Resolve missing dependencies (run as sudo)") do |resolve|
|
61
|
-
options[:resolve] = resolve
|
62
|
-
end
|
63
|
-
WarningShot.parser.on("-a","--app=PATH", String, "Path to application", "Default: #{defaults[:application]}") do |app|
|
64
|
-
options[:application] = app
|
65
|
-
end
|
66
|
-
WarningShot.parser.on("-c","--configs=PATH", String,"Path to config directories (':' seperated)","Default: #{defaults[:config_paths].join(':')}") do |config|
|
67
|
-
options[:config_paths] = config.split(':')
|
68
|
-
end
|
69
|
-
WarningShot.parser.on("-r","--resolvers=PATH", String,"Path to add'l resolvers (':' seperated)","Default: #{defaults[:resolvers].join(':')}") do |config|
|
70
|
-
options[:resolvers] = config.split(':')
|
71
|
-
end
|
72
|
-
WarningShot.parser.on("-t","--templates=PATH", String, "Generate template files", "Default: False") do |template_path|
|
73
|
-
template_path = options[:config_paths].first if template_path.nil? || template_path.empty?
|
74
|
-
WarningShot::TemplateGenerator.create(template_path)
|
75
|
-
exit
|
76
|
-
end
|
77
|
-
WarningShot.parser.on("-l","--log LOG", String, "Path to log file", "Default: #{defaults[:log_path]}") do |log_path|
|
78
|
-
options[:log_path] = log_path
|
79
|
-
end
|
80
|
-
WarningShot.parser.on("--loglevel [LEVEL]",[:debug, :info, :warn, :error, :fatal], "Default: #{defaults[:log_level]}") do |log_level|
|
81
|
-
options[:log_level] = log_level
|
82
|
-
end
|
83
|
-
WarningShot.parser.on("-g", "--growl", "Output results via growl (Requires growlnotify)") do |growl|
|
84
|
-
options[:growl] = growl
|
85
|
-
end
|
86
|
-
WarningShot.parser.on("-v", "--[no-]verbose", "Output verbose information") do |verbose|
|
87
|
-
options[:verbose] = verbose
|
88
|
-
end
|
89
|
-
WarningShot.parser.on("-p", "--[no-]prettycolors", "Colorize output") do |colorize|
|
90
|
-
options[:colorize] = colorize
|
91
|
-
end
|
92
|
-
WarningShot.parser.on_tail("--version", "Show version"){
|
93
|
-
WarningShot.parser.parse!(argv)
|
94
|
-
WarningShot::Config.setup(options)
|
95
|
-
|
96
|
-
WarningShot.load_app
|
97
|
-
WarningShot.load_addl_resolvers
|
98
|
-
|
99
|
-
puts "WarningShot v. #{WarningShot::VERSION}"
|
100
|
-
puts "Installed resolvers:"
|
101
|
-
Resolver.descendents.each { |klass|
|
102
|
-
puts "\n"
|
103
|
-
puts klass
|
104
|
-
puts " Tests: #{klass.tests.length}, Resolutions: #{klass.resolutions.length} [#{klass.resolutions.empty? ? 'irresolvable' : 'resolvable'}]"
|
105
|
-
puts " #{klass.description}"
|
106
|
-
puts " Command Line Options: #{klass.raw_cli_ext.inject([]){|m,c| m << c[:long]}.join(',')}" if klass.raw_cli_ext
|
107
|
-
}
|
108
|
-
exit
|
109
|
-
}
|
110
|
-
WarningShot.parser.on_tail("-h", "--help","Show this help message") { puts WarningShot.parser; exit }
|
111
|
-
WarningShot.parser.on_tail("--debugger","Enable debugging") do
|
112
|
-
begin
|
113
|
-
require "ruby-debug"
|
114
|
-
Debugger.start
|
115
|
-
Debugger.settings[:autoeval] = true if Debugger.respond_to?(:settings)
|
116
|
-
puts "Debugger enabled"
|
117
|
-
rescue LoadError => ex
|
118
|
-
puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
|
119
|
-
exit
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
WarningShot.parser.parse!(argv)
|
124
|
-
WarningShot::Config.setup(options)
|
125
|
-
rescue OptionParser::InvalidOption, OptionParser::InvalidArgument => op
|
126
|
-
puts op
|
127
|
-
puts WarningShot.parser #; exit;
|
128
|
-
end
|
129
|
-
|
130
|
-
end #End self
|
131
|
-
end #End Config
|
132
|
-
end#End WarningShot
|