#!/usr/bin/env ruby require 'fileutils' require 'yaml' Dir['vendor/plugins/*'].each { |d| FileUtils.rm_rf(d) } plugins = YAML.load_file('config/plugins.yml').yield_self { |ary| ary || [] }.map do |plugin| [ %[git clone #{plugin.fetch('git')} vendor/plugins/#{plugin.fetch('name')}], %[cd vendor/plugins/#{plugin.fetch('name')} && git checkout #{plugin.fetch('commit')}], ].each do |command| Kernel.system(command) Kernel.exit(false) unless $?.success? end plugin end Kernel.puts "\n#{plugins.count} plugin(s) installed to vendor/plugins."