vagrant/plugins/kernel_v2/plugin.rb

69 lines
2.1 KiB
Ruby

require "vagrant"
module VagrantPlugins
module Kernel_V2
# This is the "kernel" of Vagrant and contains the configuration classes
# that make up the core of Vagrant for V2.
class Plugin < Vagrant.plugin("2")
name "kernel"
description <<-DESC
The kernel of Vagrant. This plugin contains required items for even
basic functionality of Vagrant version 2.
DESC
# Core configuration keys provided by the kernel. Note that unlike
# "kernel_v1", none of these configuration classes are upgradable.
# This is by design, since we can't be sure if they're upgradable
# until another version is available.
config("ssh") do
require File.expand_path("../config/ssh", __FILE__)
SSHConfig
end
config("package") do
require File.expand_path("../config/package", __FILE__)
PackageConfig
end
config("push") do
require File.expand_path("../config/push", __FILE__)
PushConfig
end
config("vagrant") do
require File.expand_path("../config/vagrant", __FILE__)
VagrantConfig
end
config("vm") do
require File.expand_path("../config/vm", __FILE__)
VMConfig
end
plugins = Vagrant::Plugin::Manager.instance.installed_plugins
if !plugins.keys.include?("vagrant-triggers")
config("trigger") do
require File.expand_path("../config/trigger", __FILE__)
TriggerConfig
end
else
if !ENV["VAGRANT_USE_VAGRANT_TRIGGERS"]
$stderr.puts <<-EOF
WARNING: Vagrant has detected the `vagrant-triggers` plugin. This plugin conflicts
with the internal triggers implementation. Please uninstall the `vagrant-triggers`
plugin and run the command again if you wish to use the core trigger feature. To
uninstall the plugin, run the command shown below:
vagrant plugin uninstall vagrant-triggers
Note that the community plugin `vagrant-triggers` and the core trigger feature
in Vagrant do not have compatible syntax.
To disable this warning, set the environment variable `VAGRANT_USE_VAGRANT_TRIGGERS`.
EOF
end
end
end
end
end