Give a nice human-friendly error message when problems loading Vfile
This commit is contained in:
parent
72c10b53e7
commit
c57ba9de58
|
@ -194,13 +194,18 @@ module Vagrant
|
|||
def procs_for_path(path)
|
||||
@logger.debug("Load procs for pathname: #{path}")
|
||||
|
||||
begin
|
||||
return Config.capture_configures do
|
||||
begin
|
||||
Kernel.load path
|
||||
end
|
||||
rescue SyntaxError => e
|
||||
# Report syntax errors in a nice way.
|
||||
raise Errors::VagrantfileSyntaxError, :file => e.message
|
||||
rescue Exception => e
|
||||
# Report the generic exception
|
||||
raise Errors::VagrantfileLoadError,
|
||||
:path => path,
|
||||
:message => e.message
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -428,6 +428,10 @@ module Vagrant
|
|||
error_key(:vagrantfile_exists)
|
||||
end
|
||||
|
||||
class VagrantfileLoadError < VagrantError
|
||||
error_key(:vagrantfile_load_error)
|
||||
end
|
||||
|
||||
class VagrantfileSyntaxError < VagrantError
|
||||
status_code(41)
|
||||
error_key(:vagrantfile_syntax_error)
|
||||
|
|
|
@ -278,6 +278,13 @@ en:
|
|||
vagrantfile_exists: |-
|
||||
`Vagrantfile` already exists in this directory. Remove it before
|
||||
running `vagrant init`.
|
||||
vagrantfile_load_error: |-
|
||||
There was an error loading a Vagrantfile. The file being loaded
|
||||
and the error message are shown below. This is usually caused by
|
||||
a syntax error.
|
||||
|
||||
Path: %{path}
|
||||
Message: %{message}
|
||||
vagrantfile_syntax_error: |-
|
||||
There is a syntax error in the following Vagrantfile. The syntax error
|
||||
message is reproduced below for convenience:
|
||||
|
|
|
@ -175,5 +175,10 @@ describe Vagrant::Config::Loader do
|
|||
expect { instance.set(:file, temporary_file("Vagrant:^Config")) }.
|
||||
to raise_exception(Vagrant::Errors::VagrantfileSyntaxError)
|
||||
end
|
||||
|
||||
it "should raise a proper error if there is a problem with the Vagrantfile" do
|
||||
expect { instance.set(:file, temporary_file("foo")) }.
|
||||
to raise_exception(Vagrant::Errors::VagrantfileLoadError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue