/vendorer

Vendorer keeps your dependencies documented and up to date

Primary LanguageRuby

Vendorer

  • documented dependencies
  • automatic updates
  • no unwanted/accidental updates

Install

Ensure you have:

  • Curl
  • Git v1.7+
  • Ruby v1.8.7 or v1.9.2+

then:

$ gem install vendorer

Or add vendorer to your Gemfile:

gem 'vendorer', :group => :development

Configuration

Add a Vendorfile to your project root:

file 'vendor/assets/javascripts/jquery.min.js', 'http://code.jquery.com/jquery-latest.min.js'
folder 'vendor/plugins/parallel_tests', 'https://github.com/grosser/parallel_tests.git'

# Execute a block after updates
file 'vendor/assets/javascripts/jquery.js', 'http://code.jquery.com/jquery.js' do |path|
  puts "Do something useful with #{path}"
  rewrite(path) { |content| content.gsub(/\r\n/, \n).gsub /\t/, ' ' }
end

# Checkout a specific :ref/:tag/:branch
folder 'vendor/plugins/parallel_tests', 'https://github.com/grosser/parallel_tests.git', :tag => 'v0.6.10'

# DRY folders
folder 'vendor/assets/javascripts' do
  file 'jquery.js', 'http://code.jquery.com/jquery-latest.js'
end

# Copy files & folders from repos (also works with private repos)
from 'https://github.com/grosser/parallel_tests.git' do
  file 'Readme.md'
  file 'target-folder/file.rb', 'lib/parallel_tests.rb'
  folder 'spec'
  folder 'renamed-folder', 'spec'
end

#Vendor namespace (works with update)
vendor 'jquery' do 
  folder 'vendor/assets/javascripts' do
    file 'jquery.js', 'http://code.jquery.com/jquery-latest.js'
  end
end

Usage

  • Create a new Vendorfile: vendorer init
  • excute all installations: vendorer
  • Update all dependencies: vendorer update
  • update a single dependency: vendorer update vendor/assets/javascripts/jquery.min.js
  • update everything in a specific folder: vendorer update vendor/assets/javascripts
  • update a single vendor: vendor update jquery
Vendorer keeps your vendor files up to date.

Usage:

Create a Vendorfile in your project root with:

    file 'public/javascripts/jquery.min.js' => 'http://code.jquery.com/jquery-latest.min.js'
    folder 'vendor/plugins/parallel_tests' => 'https://github.com/grosser/parallel_tests.git'

Run `vendorer init` to create Vendorfile.
Run `vendorer` to install.
Run `vendorer update` to update.

Options:
    -s, --[no-]skip                  Skip force installing missing files
                                     Default: false
    -d, --[no-]destructive_folders   Destroy folders prior to writing new contents
                                     Default: true
    -v, --version                    Show Version
    -h, --help                       Show this.

TODO

  • nice error message when no Vendorfile was found

Author

Contributors

Michael Grosser
michael@grosser.it
License: MIT
Build Status