diff options
author | André Arko <mail@arko.net> | 2015-08-08 00:34:17 -0700 |
---|---|---|
committer | André Arko <mail@arko.net> | 2015-08-08 00:34:17 -0700 |
commit | 05c8262d3dff0c50c77ac8a1c6933e18f63c71fe (patch) | |
tree | fad12f23170606843c268b99082620f47eabac7c | |
parent | 83bdb7f7ddc95bed78c18320bd8baa2ba8f3972a (diff) | |
parent | 2619a7e5778ede855fd194926aa1bce7c6a185c4 (diff) | |
download | bundler-05c8262d3dff0c50c77ac8a1c6933e18f63c71fe.tar.gz |
Merge pull request #3921 from bundler/seg-automatiek
[Rakefile] Use automatiek to manage vendoring
-rw-r--r-- | Rakefile | 80 | ||||
-rw-r--r-- | bundler.gemspec | 11 |
2 files changed, 29 insertions, 62 deletions
@@ -27,63 +27,6 @@ module Rake end end -def clean_files(files, regex, replacement = "") - files.each do |file| - contents = File.read(file) - contents.gsub!(regex, replacement) - File.open(file, "w") {|f| f << contents } - end -end - -namespace :molinillo do - task :namespace do - files = Dir.glob("lib/bundler/vendor/molinillo*/**/*.rb") - clean_files(files, "Molinillo", "Bundler::Molinillo") - clean_files(files, /require (["'])molinillo/, 'require \1bundler/vendor/molinillo/lib/molinillo') - end - - task :clean do - files = Dir.glob("lib/bundler/vendor/molinillo*/*", File::FNM_DOTMATCH).reject {|f| %(. .. lib).include? f.split("/").last } - rm_r files - end - - task :update, [:tag] => [] do |_, args| - tag = args[:tag] - Dir.chdir "lib/bundler/vendor" do - rm_rf "molinillo" - sh "curl -L https://github.com/CocoaPods/molinillo/archive/#{tag}.tar.gz | tar -xz" - sh "mv Molinillo-* molinillo" - end - Rake::Task["molinillo:namespace"].invoke - Rake::Task["molinillo:clean"].invoke - end -end - -namespace :thor do - task :namespace do - files = Dir.glob("lib/bundler/vendor/thor*/**/*.rb") - clean_files(files, "Thor", "Bundler::Thor") - clean_files(files, /require (["'])thor/, 'require \1bundler/vendor/thor/lib/thor') - clean_files(files, /(autoload\s+[:\w]+,\s+["'])(thor[\w\/]+["'])/, '\1bundler/vendor/thor/lib/\2') - end - - task :clean do - files = Dir.glob("lib/bundler/vendor/thor*/*", File::FNM_DOTMATCH).reject {|f| %(. .. lib).include? f.split("/").last } - rm_r files - end - - task :update, [:tag] => [] do |_, args| - tag = args[:tag] - Dir.chdir "lib/bundler/vendor" do - rm_rf "thor" - sh "curl -L https://github.com/erikhuda/thor/archive/#{tag}.tar.gz | tar -xz" - sh "mv thor-* thor" - end - Rake::Task["thor:namespace"].invoke - Rake::Task["thor:clean"].invoke - end -end - namespace :spec do desc "Ensure spec dependencies are installed" task :deps do @@ -330,6 +273,29 @@ rescue LoadError end end +begin + require "automatiek" + + Automatiek::RakeTask.new("molinillo") do |lib| + lib.download = { :github => "https://github.com/CocoaPods/Molinillo" } + lib.namespace = "Molinillo" + lib.prefix = "Bundler" + lib.vendor_lib = "lib/bundler/vendor/molinillo" + end + + Automatiek::RakeTask.new("thor") do |lib| + lib.download = { :github => "https://github.com/erikhuda/thor" } + lib.namespace = "Thor" + lib.prefix = "Bundler" + lib.vendor_lib = "lib/bundler/vendor/thor" + end +rescue LoadError + namespace :vendor do + task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." } + task(:thor) { abort "Install the automatiek gem to be able to vendor gems." } + end +end + desc "Update vendored SSL certs to match the certs vendored by Rubygems" task :update_certs => "spec:rubygems:clone_rubygems_master" do require "bundler/ssl_certs/certificate_manager" diff --git a/bundler.gemspec b/bundler.gemspec index 1e5198adb0..ef2a04df77 100644 --- a/bundler.gemspec +++ b/bundler.gemspec @@ -16,11 +16,12 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 1.8.7" s.required_rubygems_version = ">= 1.3.6" - s.add_development_dependency "mustache", "0.99.6" - s.add_development_dependency "rake", "~> 10.0" - s.add_development_dependency "rdiscount", "~> 1.6" - s.add_development_dependency "ronn", "~> 0.7.3" - s.add_development_dependency "rspec", "~> 3.0" + s.add_development_dependency "automatiek", "~> 0.1.0" + s.add_development_dependency "mustache", "0.99.6" + s.add_development_dependency "rake", "~> 10.0" + s.add_development_dependency "rdiscount", "~> 1.6" + s.add_development_dependency "ronn", "~> 0.7.3" + s.add_development_dependency "rspec", "~> 3.0" s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) } # we don't check in man pages, but we need to ship them because |