bin/vagabond in vagabond-0.2.0 vs bin/vagabond in vagabond-0.2.2
- old
+ new
@@ -2,27 +2,54 @@
Signal.trap('INT'){ exit 255 }
require 'rubygems'
require 'vagabond'
+require 'vagabond/errors'
if(ARGV.include?('--version') || ARGV.include?('-v'))
require 'vagabond/vagabond'
Vagabond::Vagabond.new.send(:version)
+elsif(%w(help --help -h).include?(ARGV.first))
+ puts "-- Vagabond --\n"
+ require 'vagabond/vagabond'
+ Object.send(:remove_const, :ARGV)
+ ARGV = %w(help)
+ Vagabond::Vagabond.start
+ %w(server knife kitchen spec).each do |key|
+ puts "-- #{key.capitalize} --\n"
+ require "vagabond/#{key}"
+ Object.send(:remove_const, :ARGV)
+ ARGV = %w(help)
+ Vagabond.const_get(key.capitalize).start
+ end
else
- case arg = ARGV.shift
- when 'server'
- require 'vagabond/server'
- Vagabond::Server
- when 'knife'
- require 'vagabond/knife'
- ARGV.unshift(arg) unless ARGV.empty?
- Vagabond::Knife
- when 'test', 'kitchen'
- require 'vagabond/kitchen'
- Vagabond::Kitchen
- else
- require 'vagabond/vagabond'
- ARGV.unshift(arg)
- Vagabond::Vagabond
- end.start
+ begin
+ case arg = ARGV.shift
+ when 'server'
+ require 'vagabond/server'
+ Vagabond::Server
+ when 'knife'
+ require 'vagabond/knife'
+ ARGV.unshift(arg) unless ARGV.empty?
+ Vagabond::Knife
+ when 'test', 'kitchen'
+ require 'vagabond/kitchen'
+ Vagabond::Kitchen
+ when 'spec'
+ require 'vagabond/spec'
+ Vagabond::Spec
+ else
+ require 'vagabond/vagabond'
+ ARGV.unshift(arg)
+ Vagabond::Vagabond
+ end.start
+ rescue Vagabond::VagabondError => e
+ exit e.exit_code
+ rescue Exception => e
+ $stderr.puts "Vagabond exiting. Reason: #{e}"
+ if(ENV['VAGABOND_EXIT_DEBUG'])
+ puts "#{e.class}: #{e}\n#{e.backtrace.join("\n")}"
+ end
+ exit -1
+ end
end