Vendorer
- documented & cached dependencies
- automatic updates
- no unwanted/accidental updates
Install
Needs: Curl + Git + Ruby
then:
gem install vendorer
or standalone
curl https://rubinjam.herokuapp.com/pack/vendorer > vendorer && chmod +x vendorer
./vendorer -v
Usage
Add a Vendorfile
(or Vendorfile.rb
) 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 |checkout_location|
file 'Readme.md'
file 'target-folder/file.rb', 'lib/parallel_tests.rb'
folder 'spec'
folder 'renamed-folder', 'spec'
end
- Create a new Vendorfile:
vendorer init
- Execute 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
Alternatives
- Vendorificator more features/complexity, but similar interface/concept
TODO
- nice error message when no Vendorfile was found
Author
Michael Grosser
michael@grosser.it
License: MIT