NOTICE

This plugin was initially released as Vundler and was just renamed to Bindler to avoid confusion with Vim's Vundle, please follow the steps to revert its installation before upgrading to Bindler

Bindler

Dead easy Vagrant plugins management, think of it as soon-to-be "Bundler for Vagrant".

WARNING

This is highly experimental and things might go wrong. It basically does some heavy monkey patching on Vagrant's core and should not be considered "production-ready". Please keep that in mind and be ready to revert Bindler's installation in case things go crazy.

Installation

Make sure you have Vagrant 1.2+ and run:

vagrant plugin install bindler
vagrant bindler setup

Usage

Add one of plugins.json, .vagrant_plugins.json, or vagrant/plugins.json to your project root. The first matching file will be used as your project's plugins.json file.

[
  "vagrant-lxc",
  {"vagrant-cachier": "0.2.0"}
]

And run vagrant plugin bundle to install missing dependencies:

$ vagrant plugin bundle

Installing plugins...
  -> vagrant-lxc already installed
  -> vagrant-cachier (0.2.0)

List installed plugins with vagrant plugin list:

$ vagrant plugin list

vagrant-lxc (0.4.0)
bindler (0.1.1)

Project dependencies:
  -> vagrant-lxc
  -> vagrant-cachier 0.2.0

Help! Things are falling apart!

First bring back Vagrant's default plugins.json file:

mv $HOME/.vagrant.d/{global-,}plugins.json

And then remove the require 'bindler' from your $HOME/.vagrant.d/Vagrantfile.

How does it work?

Have a look at this blog post.

Development

git clone bindler
cd bindler
bundle install

# Add some changes...
bundle exec rake build
vagrant plugin install pkg/bindler-VERSION.gem

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request