2013-02-03 18:47:01 +00:00
|
|
|
module VagrantPlugins
|
|
|
|
module CommandPlugin
|
|
|
|
module Action
|
|
|
|
# This middleware uninstalls a plugin by simply removing it from
|
|
|
|
# the state file. Running a {PruneGems} after should properly remove
|
|
|
|
# it from the gem index.
|
|
|
|
class UninstallPlugin
|
|
|
|
def initialize(app, env)
|
|
|
|
@app = app
|
|
|
|
end
|
|
|
|
|
|
|
|
def call(env)
|
|
|
|
# Remove it!
|
|
|
|
env[:ui].info(I18n.t("vagrant.commands.plugin.uninstalling",
|
2014-05-22 16:35:12 +00:00
|
|
|
name: env[:plugin_name]))
|
2014-01-06 00:02:00 +00:00
|
|
|
|
|
|
|
manager = Vagrant::Plugin::Manager.instance
|
|
|
|
manager.uninstall_plugin(env[:plugin_name])
|
2013-02-03 18:47:01 +00:00
|
|
|
|
|
|
|
@app.call(env)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|