ronin 0.2.0 → 0.2.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/History.txt +21 -0
- data/Manifest.txt +17 -6
- data/README.txt +3 -2
- data/Rakefile +1 -0
- data/bin/ronin-add +12 -0
- data/bin/ronin-console +12 -0
- data/bin/ronin-ext +12 -0
- data/bin/ronin-help +12 -0
- data/bin/ronin-install +12 -0
- data/bin/ronin-ls +12 -0
- data/bin/ronin-overlay +12 -0
- data/bin/ronin-rm +12 -0
- data/bin/ronin-uninstall +12 -0
- data/bin/ronin-update +12 -0
- data/lib/ronin/extensions/string.rb +5 -3
- data/lib/ronin/platform/extension.rb +8 -2
- data/lib/ronin/platform/overlay.rb +16 -32
- data/lib/ronin/ui.rb +1 -1
- data/lib/ronin/ui/command_line.rb +1 -1
- data/lib/ronin/ui/command_line/command.rb +42 -60
- data/lib/ronin/ui/command_line/command_line.rb +28 -50
- data/lib/ronin/ui/command_line/commands/add.rb +41 -40
- data/lib/ronin/ui/command_line/commands/{default.rb → console.rb} +28 -21
- data/lib/ronin/ui/command_line/commands/{extension.rb → ext.rb} +25 -27
- data/lib/ronin/ui/command_line/commands/help.rb +26 -28
- data/lib/ronin/ui/command_line/commands/install.rb +32 -32
- data/lib/ronin/ui/command_line/commands/ls.rb +123 -0
- data/lib/ronin/ui/command_line/commands/overlay.rb +115 -114
- data/lib/ronin/ui/command_line/commands/{remove.rb → rm.rb} +27 -29
- data/lib/ronin/ui/command_line/commands/uninstall.rb +27 -29
- data/lib/ronin/ui/command_line/commands/update.rb +28 -30
- data/lib/ronin/ui/command_line/options.rb +0 -12
- data/lib/ronin/ui/command_line/param_parser.rb +34 -14
- data/lib/ronin/ui/console.rb +1 -0
- data/lib/ronin/ui/diagnostics.rb +5 -19
- data/lib/ronin/ui/{command_line/commands.rb → verbose.rb} +19 -11
- data/lib/ronin/version.rb +1 -1
- data/spec/arch_spec.rb +24 -24
- data/spec/chars/chars_spec.rb +49 -13
- data/spec/extensions/string_spec.rb +6 -6
- data/spec/spec_helper.rb +1 -1
- data/spec/ui/command_line/helpers/example_command.rb +21 -0
- data/spec/ui/command_line/param_parser_spec.rb +9 -18
- data/spec/ui/verbose_spec.rb +17 -0
- metadata +39 -8
- data/lib/ronin/ui/command_line/commands/list.rb +0 -122
- data/spec/ui/diagnostics_spec.rb +0 -17
data/History.txt
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
=== 0.2.1 / 2009-02-23
|
2
|
+
|
3
|
+
* Added Ronin::UI::Verbose.
|
4
|
+
* Require Nokogiri >= 1.2.0:
|
5
|
+
* Use Nokogiri::XML, instead of REXML, for XML parsing and building.
|
6
|
+
* Renamed String#inspect to String#dump.
|
7
|
+
* Aliased String#inspect to String#dump.
|
8
|
+
* Rewrote Ronin::UI::CommandLine.
|
9
|
+
* Removed Ronin::UI::CommandLine::Options.command.
|
10
|
+
* Refactored Ronin::UI::CommandLine::Command.
|
11
|
+
* Added Command#defaults method to give the command's variables
|
12
|
+
default values.
|
13
|
+
* Fixed a bug in Command.run.
|
14
|
+
* Renamed DefaultCommand to ConsoleCommand.
|
15
|
+
* Implement git style sub-commands.
|
16
|
+
* Use reverse-require to find sub-commands.
|
17
|
+
* Refactored Ronin::UI::ParamParser.
|
18
|
+
* Control parameter formats and their parsers with ParamParser.recognize.
|
19
|
+
* Rewrote the Ronin::Chars spec.
|
20
|
+
* Updated the Ronin::UI::ParamParser spec.
|
21
|
+
|
1
22
|
=== 0.2.0 / 2009-02-06
|
2
23
|
|
3
24
|
* Moved the HTML formatting methods into the
|
data/Manifest.txt
CHANGED
@@ -5,6 +5,16 @@ README.txt
|
|
5
5
|
TODO.txt
|
6
6
|
Rakefile
|
7
7
|
bin/ronin
|
8
|
+
bin/ronin-add
|
9
|
+
bin/ronin-console
|
10
|
+
bin/ronin-ext
|
11
|
+
bin/ronin-help
|
12
|
+
bin/ronin-install
|
13
|
+
bin/ronin-ls
|
14
|
+
bin/ronin-overlay
|
15
|
+
bin/ronin-rm
|
16
|
+
bin/ronin-uninstall
|
17
|
+
bin/ronin-update
|
8
18
|
lib/ronin.rb
|
9
19
|
lib/ronin/config.rb
|
10
20
|
lib/ronin/extensions.rb
|
@@ -125,6 +135,7 @@ lib/ronin/platform/extension.rb
|
|
125
135
|
lib/ronin/platform/platform.rb
|
126
136
|
lib/ronin/platform/ronin.rb
|
127
137
|
lib/ronin/ui.rb
|
138
|
+
lib/ronin/ui/verbose.rb
|
128
139
|
lib/ronin/ui/diagnostics.rb
|
129
140
|
lib/ronin/ui/hexdump.rb
|
130
141
|
lib/ronin/ui/hexdump/hexdump.rb
|
@@ -139,15 +150,14 @@ lib/ronin/ui/command_line/exceptions/unknown_command.rb
|
|
139
150
|
lib/ronin/ui/command_line/command.rb
|
140
151
|
lib/ronin/ui/command_line/options.rb
|
141
152
|
lib/ronin/ui/command_line/param_parser.rb
|
142
|
-
lib/ronin/ui/command_line/commands.rb
|
143
|
-
lib/ronin/ui/command_line/commands/default.rb
|
153
|
+
lib/ronin/ui/command_line/commands/console.rb
|
144
154
|
lib/ronin/ui/command_line/commands/overlay.rb
|
145
|
-
lib/ronin/ui/command_line/commands/
|
155
|
+
lib/ronin/ui/command_line/commands/ext.rb
|
146
156
|
lib/ronin/ui/command_line/commands/add.rb
|
147
157
|
lib/ronin/ui/command_line/commands/install.rb
|
148
|
-
lib/ronin/ui/command_line/commands/
|
158
|
+
lib/ronin/ui/command_line/commands/ls.rb
|
149
159
|
lib/ronin/ui/command_line/commands/update.rb
|
150
|
-
lib/ronin/ui/command_line/commands/
|
160
|
+
lib/ronin/ui/command_line/commands/rm.rb
|
151
161
|
lib/ronin/ui/command_line/commands/uninstall.rb
|
152
162
|
lib/ronin/ui/command_line/commands/help.rb
|
153
163
|
lib/ronin/ui/command_line/command_line.rb
|
@@ -192,7 +202,8 @@ spec/platform/overlay_cache_spec.rb
|
|
192
202
|
spec/platform/extension_cache_spec.rb
|
193
203
|
spec/platform/platform_spec.rb
|
194
204
|
spec/platform/ronin_spec.rb
|
195
|
-
spec/ui/
|
205
|
+
spec/ui/verbose_spec.rb
|
206
|
+
spec/ui/command_line/helpers/example_command.rb
|
196
207
|
spec/ui/command_line/param_parser_spec.rb
|
197
208
|
spec/ronin_spec.rb
|
198
209
|
static/overlay.xsl
|
data/README.txt
CHANGED
@@ -68,6 +68,7 @@ of Ronin.
|
|
68
68
|
== REQUIREMENTS:
|
69
69
|
|
70
70
|
* {libsqlite3}[http://sqlite.org/]
|
71
|
+
* {nokogiri}[http://nokogiri.rubyforge.org/] >= 1.2.0
|
71
72
|
* {DataMapper}[http://datamapper.org/]:
|
72
73
|
* dm-core >= 0.9.9
|
73
74
|
* data_objects >= 0.9.9
|
@@ -106,11 +107,11 @@ of Ronin.
|
|
106
107
|
|
107
108
|
* Update all installed Overlays:
|
108
109
|
|
109
|
-
$ ronin
|
110
|
+
$ ronin update
|
110
111
|
|
111
112
|
* Update a specific Overlay:
|
112
113
|
|
113
|
-
$ ronin
|
114
|
+
$ ronin update overlay-name
|
114
115
|
|
115
116
|
* Uninstall an Overlay:
|
116
117
|
|
data/Rakefile
CHANGED
@@ -10,6 +10,7 @@ Hoe.new('ronin', Ronin::VERSION) do |p|
|
|
10
10
|
p.developer('Postmodern','postmodern.mod3@gmail.com')
|
11
11
|
p.remote_rdoc_dir = 'docs/ronin'
|
12
12
|
p.extra_deps = [
|
13
|
+
['nokogiri', '>=1.2.0'],
|
13
14
|
['dm-core', '>=0.9.9'],
|
14
15
|
['data_objects', '>=0.9.9'],
|
15
16
|
['do_sqlite3', '>=0.9.9'],
|
data/bin/ronin-add
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/add'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Add.run(*ARGV)
|
data/bin/ronin-console
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/console'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Console.run(*ARGV)
|
data/bin/ronin-ext
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/ext'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Ext.run(*ARGV)
|
data/bin/ronin-help
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/help'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Help.run(*ARGV)
|
data/bin/ronin-install
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/install'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Install.run(*ARGV)
|
data/bin/ronin-ls
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/ls'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::LS.run(*ARGV)
|
data/bin/ronin-overlay
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/overlay'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Overlay.run(*ARGV)
|
data/bin/ronin-rm
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/rm'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::RM.run(*ARGV)
|
data/bin/ronin-uninstall
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/uninstall'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Uninstall.run(*ARGV)
|
data/bin/ronin-update
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
7
|
+
$LOAD_PATH << lib_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'ronin/ui/command_line/commands/update'
|
11
|
+
|
12
|
+
Ronin::UI::CommandLine::Commands::Update.run(*ARGV)
|
@@ -84,12 +84,12 @@ class String
|
|
84
84
|
end
|
85
85
|
|
86
86
|
#
|
87
|
-
#
|
87
|
+
# Dumps the string, returning a C style encoded version of the string.
|
88
88
|
#
|
89
|
-
# "hello\x00\073\x90\r\n"
|
89
|
+
# "hello\x00\073\x90\r\n".dump
|
90
90
|
# # => "hello\0;\x90\r\n"
|
91
91
|
#
|
92
|
-
def
|
92
|
+
def dump
|
93
93
|
c_string = ''
|
94
94
|
|
95
95
|
each_byte do |b|
|
@@ -124,4 +124,6 @@ class String
|
|
124
124
|
return "\"#{c_string}\""
|
125
125
|
end
|
126
126
|
|
127
|
+
alias inspect dump
|
128
|
+
|
127
129
|
end
|
@@ -230,7 +230,13 @@ module Ronin
|
|
230
230
|
def run(&block)
|
231
231
|
setup!
|
232
232
|
|
233
|
-
|
233
|
+
if block
|
234
|
+
if block.arity == 1
|
235
|
+
block.call(self)
|
236
|
+
else
|
237
|
+
block.call()
|
238
|
+
end
|
239
|
+
end
|
234
240
|
|
235
241
|
teardown!
|
236
242
|
return self
|
@@ -289,7 +295,7 @@ module Ronin
|
|
289
295
|
# ext.find_file('data/test/file.xml')
|
290
296
|
#
|
291
297
|
# ext.find_file('data/test/file.xml') do |file|
|
292
|
-
#
|
298
|
+
# Nokogiri::XML(open(file))
|
293
299
|
# ...
|
294
300
|
# end
|
295
301
|
#
|
@@ -25,8 +25,8 @@ require 'ronin/platform/exceptions/extension_not_found'
|
|
25
25
|
require 'ronin/platform/maintainer'
|
26
26
|
require 'ronin/platform/extension'
|
27
27
|
|
28
|
-
require 'rexml/document'
|
29
28
|
require 'repertoire'
|
29
|
+
require 'nokogiri'
|
30
30
|
|
31
31
|
module Ronin
|
32
32
|
module Platform
|
@@ -225,44 +225,28 @@ module Ronin
|
|
225
225
|
@description = nil
|
226
226
|
|
227
227
|
if File.file?(metadata_path)
|
228
|
-
doc =
|
229
|
-
overlay = doc.
|
230
|
-
|
231
|
-
overlay.
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
overlay.
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
@source = source.text.strip
|
241
|
-
end
|
242
|
-
|
243
|
-
overlay.each_element('source-view[.]:first') do |source_view|
|
244
|
-
@source_view = source_view.text.strip
|
245
|
-
end
|
246
|
-
|
247
|
-
overlay.each_element('website[.]:first') do |website|
|
248
|
-
@website = website.text.strip
|
249
|
-
end
|
250
|
-
|
251
|
-
overlay.each_element('maintainers/maintainer') do |maintainer|
|
252
|
-
if (name = maintainer.text('name'))
|
253
|
-
name.strip!
|
228
|
+
doc = Nokogiri::XML(open(metadata_path))
|
229
|
+
overlay = doc.at('/ronin-overlay')
|
230
|
+
|
231
|
+
@title = overlay.at('title').inner_text.strip
|
232
|
+
@license = overlay.at('license').inner_text.strip
|
233
|
+
@source = overlay.at('source').inner_text.strip
|
234
|
+
@source_view = overlay.at('source-view').inner_text.strip
|
235
|
+
@website = overlay.at('website').inner_text.strip
|
236
|
+
|
237
|
+
overlay.search('maintainers/maintainer').each do |maintainer|
|
238
|
+
if (name = maintainer.at('name'))
|
239
|
+
name = name.inner_text.strip
|
254
240
|
end
|
255
241
|
|
256
|
-
if (email = maintainer.
|
257
|
-
email.strip
|
242
|
+
if (email = maintainer.at('email'))
|
243
|
+
email = email.inner_text.strip
|
258
244
|
end
|
259
245
|
|
260
246
|
@maintainers << Maintainer.new(name,email)
|
261
247
|
end
|
262
248
|
|
263
|
-
overlay.
|
264
|
-
@description = description.text.strip
|
265
|
-
end
|
249
|
+
@description = overlay.search('description').inner_text.strip
|
266
250
|
end
|
267
251
|
|
268
252
|
block.call(self) if block
|
data/lib/ronin/ui.rb
CHANGED
@@ -22,57 +22,53 @@
|
|
22
22
|
#
|
23
23
|
|
24
24
|
require 'ronin/ui/command_line/options'
|
25
|
-
require 'ronin/ui/command_line/command_line'
|
26
|
-
require 'ronin/extensions/meta'
|
27
25
|
|
28
26
|
module Ronin
|
29
27
|
module UI
|
30
28
|
module CommandLine
|
31
29
|
class Command
|
32
30
|
|
31
|
+
# The name of the command
|
32
|
+
attr_reader :name
|
33
|
+
|
33
34
|
# The options for the command
|
34
35
|
attr_reader :options
|
35
36
|
|
36
37
|
#
|
37
38
|
# Creates a new Command object.
|
38
39
|
#
|
39
|
-
def initialize
|
40
|
-
|
40
|
+
def initialize(name,&block)
|
41
|
+
@name = name.to_s
|
42
|
+
|
43
|
+
defaults()
|
44
|
+
|
45
|
+
Options.new(@name) do |opts|
|
41
46
|
define_options(opts)
|
42
47
|
|
43
48
|
@options = opts
|
44
49
|
end
|
45
|
-
end
|
46
|
-
|
47
|
-
#
|
48
|
-
# Returns the name of the command.
|
49
|
-
#
|
50
|
-
def self.command_name
|
51
|
-
nil
|
52
|
-
end
|
53
50
|
|
54
|
-
|
55
|
-
# Returns the short names of the command.
|
56
|
-
#
|
57
|
-
def self.command_short_names
|
58
|
-
[]
|
59
|
-
end
|
60
|
-
|
61
|
-
#
|
62
|
-
# Returns all the names of the command.
|
63
|
-
#
|
64
|
-
def self.command_names
|
65
|
-
([self.command_name] + self.command_short_names).compact
|
51
|
+
block.call(self) if block
|
66
52
|
end
|
67
53
|
|
68
54
|
#
|
69
55
|
# Creates a new command object and runs it with the given _args_.
|
70
56
|
#
|
71
57
|
def self.run(*args)
|
72
|
-
|
58
|
+
name = File.basename($0)
|
59
|
+
name.gsub!(/^ronin-/,'')
|
60
|
+
|
61
|
+
cmd = self.new(name)
|
62
|
+
|
63
|
+
begin
|
64
|
+
cmd.arguments(*(cmd.options.parse(args)))
|
65
|
+
rescue OptionParser::MissingArgument,
|
66
|
+
OptionParser::InvalidOption => e
|
67
|
+
STDERR.puts e
|
68
|
+
exit -1
|
69
|
+
end
|
73
70
|
|
74
|
-
|
75
|
-
return nil
|
71
|
+
return true
|
76
72
|
end
|
77
73
|
|
78
74
|
#
|
@@ -94,57 +90,43 @@ module Ronin
|
|
94
90
|
# Returns the String form of the command.
|
95
91
|
#
|
96
92
|
def to_s
|
97
|
-
|
93
|
+
@name.to_s
|
98
94
|
end
|
99
95
|
|
100
96
|
protected
|
101
97
|
|
102
98
|
#
|
103
|
-
#
|
104
|
-
# _short_names_.
|
99
|
+
# Prints the specified error _message_.
|
105
100
|
#
|
106
|
-
def
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
meta_def(:command_name) { name }
|
111
|
-
meta_def(:command_short_names) { short_names }
|
112
|
-
|
113
|
-
unless CommandLine.commands.include?(self)
|
114
|
-
# register the command
|
115
|
-
CommandLine.commands << self
|
116
|
-
end
|
117
|
-
|
118
|
-
# register the command by name
|
119
|
-
CommandLine.commands_by_name[name] = self
|
120
|
-
|
121
|
-
# register the command by it's short_names
|
122
|
-
short_names.each do |short_name|
|
123
|
-
CommandLine.commands_by_name[short_name] = self
|
124
|
-
end
|
125
|
-
|
126
|
-
return self
|
101
|
+
def error(message)
|
102
|
+
STDERR.puts "ronin: #{@name}: #{message}"
|
103
|
+
return false
|
127
104
|
end
|
128
105
|
|
129
106
|
#
|
130
|
-
#
|
107
|
+
# Calls the specified _block_, then exists with the status code of 0.
|
131
108
|
#
|
132
|
-
def
|
133
|
-
|
109
|
+
def success(&block)
|
110
|
+
block.call
|
111
|
+
exit 0
|
134
112
|
end
|
135
113
|
|
136
114
|
#
|
137
|
-
#
|
115
|
+
# Prints the given error _message_ and exits unseccessfully from the
|
116
|
+
# command-line utility. If a _block_ is given, it will be called before
|
117
|
+
# any error _message_ are printed.
|
138
118
|
#
|
139
|
-
def
|
140
|
-
|
119
|
+
def fail(message,&block)
|
120
|
+
block.call() if block
|
121
|
+
|
122
|
+
error(message)
|
123
|
+
exit -1
|
141
124
|
end
|
142
125
|
|
143
126
|
#
|
144
|
-
#
|
127
|
+
# Setup the command default values.
|
145
128
|
#
|
146
|
-
def
|
147
|
-
CommandLine.fail("#{self.class.command_name}: #{message}",&block)
|
129
|
+
def defaults
|
148
130
|
end
|
149
131
|
|
150
132
|
#
|