Sha256: 35f5baab9de5063bf41f7da88ce3c176be30c2cc95f62feea2ccf1620916db6b
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
module VagrantPlugins module VagrantHook class HooksConfig < Vagrant.plugin(2, :config) attr_accessor :check_outdated_callbacks attr_accessor :add_box_callbacks def initialize @check_outdated_callbacks = [] @add_box_callbacks = [] end def on_check_outdated(&proc) @check_outdated_callbacks << {:mproc => proc} end def on_add_box(&proc) @add_box_callbacks << {:mproc => proc} end end class HookActionAbstract def initialize(app, env, callbacks_list) @app = app @callbacks_list = callbacks_list end def call(env) callbacks = @callbacks_list.call callbacks.each do | clbk | puts env.to_yaml clbk[:mproc].call(env) end @app.call(env) end end class HookBoxCheckOutdated < HookActionAbstract def initialize(app, env) super(app, env, Proc.new { env[:machine].config.vagrant_hook.check_outdated_callbacks } ) end end class AddBoxHook < HookActionAbstract def initialize(app, env) super(app, env, Proc.new { env[:machine].config.vagrant_hook.add_box_callbacks } ) end end class Plugin < Vagrant.plugin("2") name "vagrant_hook" config "vagrant_hook" do HooksConfig end action_hook(:vagrant_hook, Plugin::ALL_ACTIONS) do |hook| hook.after(Vagrant::Action::Builtin::BoxCheckOutdated, VagrantPlugins::VagrantHook::HookBoxCheckOutdated) end action_hook(:vagrant_hook, Plugin::ALL_ACTIONS) do |hook| hook.after(Vagrant::Action::Builtin::BoxAdd, VagrantPlugins::VagrantHook::AddBoxHook) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vagrant_hook-0.1.3 | lib/vagrant_hook/plugin.rb |