43 lines
1.3 KiB
Ruby
43 lines
1.3 KiB
Ruby
|
module VagrantPlugins
|
||
|
module Shell
|
||
|
class Config < Vagrant.plugin("2", :config)
|
||
|
attr_accessor :inline
|
||
|
attr_accessor :path
|
||
|
attr_accessor :upload_path
|
||
|
attr_accessor :args
|
||
|
|
||
|
def initialize
|
||
|
@upload_path = "/tmp/vagrant-shell"
|
||
|
end
|
||
|
|
||
|
def validate(env, errors)
|
||
|
# Validate that the parameters are properly set
|
||
|
if path && inline
|
||
|
errors.add(I18n.t("vagrant.provisioners.shell.path_and_inline_set"))
|
||
|
elsif !path && !inline
|
||
|
errors.add(I18n.t("vagrant.provisioners.shell.no_path_or_inline"))
|
||
|
end
|
||
|
|
||
|
# Validate the existence of a script to upload
|
||
|
if path
|
||
|
expanded_path = Pathname.new(path).expand_path(env.root_path)
|
||
|
if !expanded_path.file?
|
||
|
errors.add(I18n.t("vagrant.provisioners.shell.path_invalid",
|
||
|
:path => expanded_path))
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# There needs to be a path to upload the script to
|
||
|
if !upload_path
|
||
|
errors.add(I18n.t("vagrant.provisioners.shell.upload_path_not_set"))
|
||
|
end
|
||
|
|
||
|
# If there are args and its not a string, that is a problem
|
||
|
if args && !args.is_a?(String)
|
||
|
errors.add(I18n.t("vagrant.provisioners.shell.args_not_string"))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|