GitHub - grosser/vendorer: Vendorer keeps your dependencies documented, cached and up to date (original) (raw)
Vendorer
- documented & cached dependencies
- automatic updates
- no unwanted/accidental updates
Install
Needs: Curl + Git + Ruby
then:
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
Contributors
Michael Grosser
michael@grosser.it
License: MIT