#!/usr/bin/env ruby require 'vagrant' require 'vagrant/cli' env = Vagrant::Environment.new begin # 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, Thor::Base.shell.new) 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