34 lines
954 B
Ruby
Executable File
34 lines
954 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
require 'vagrant'
|
|
require 'vagrant/cli'
|
|
|
|
env = Vagrant::Environment.new
|
|
|
|
begin
|
|
# Begin logging early here
|
|
env.logger.info("vagrant") { "`vagrant` invoked: #{ARGV.inspect}" }
|
|
|
|
# Disable color if the proper argument was passed
|
|
shell = nil
|
|
if !$stdout.tty? || ARGV.include?("--no-color")
|
|
shell = Thor::Shell::Basic.new
|
|
else
|
|
shell = Thor::Base.shell.new
|
|
end
|
|
|
|
# Set the UI early in case any errors are raised, and load
|
|
# the config immediately, so we gather any new commands from
|
|
# plugins
|
|
env.ui = Vagrant::UI::Shell.new(env, shell)
|
|
env.load!
|
|
|
|
# Kick start the CLI
|
|
Vagrant::CLI.start(ARGV, :env => env)
|
|
rescue Vagrant::Errors::VagrantError => e
|
|
opts = { :prefix => false }
|
|
env.ui.error e.message, opts if e.message
|
|
env.ui.error e.backtrace.join("\n"), opts if ENV["VAGRANT_DEBUG"]
|
|
exit e.status_code if e.respond_to?(:status_code)
|
|
exit 999 # An error occurred with no status code defined
|
|
end
|