add irb option for the cli script

This commit is contained in:
rick
2010-08-23 16:13:38 -07:00
parent 48b143c6ed
commit 8c625419b8
+37 -3
View File
@@ -14,9 +14,7 @@ Options:
HELP
require 'optparse'
require 'rubygems'
require 'gollum/frontend/app'
exec = {}
options = {}
@@ -31,6 +29,10 @@ opts = OptionParser.new do |opts|
puts "Gollum " + Gollum::VERSION
exit 0
end
opts.on("--irb", "Start an irb process with gollum loaded for the current wiki.") do
options['irb'] = true
end
end
# Read command line options into `options` hash
@@ -38,4 +40,36 @@ opts.parse!
$path = ARGV[0] || Dir.pwd
Precious::App.run!(options)
if options['irb']
require 'irb'
# http://jameskilton.com/2009/04/02/embedding-irb-into-your-ruby-application/
module IRB # :nodoc:
def self.start_session(binding)
unless @__initialized
args = ARGV
ARGV.replace(ARGV.dup)
IRB.setup(nil)
ARGV.replace(args)
@__initialized = true
end
workspace = WorkSpace.new(binding)
irb = Irb.new(workspace)
@CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
@CONF[:MAIN_CONTEXT] = irb.context
catch(:IRB_EXIT) do
irb.eval_input
end
end
end
require 'gollum'
wiki = Gollum::Wiki.new $path
IRB.start_session binding
else
require 'gollum/frontend/app'
Precious::App.run!(options)
end