summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Arko <mail@arko.net>2015-08-08 00:34:17 -0700
committerAndré Arko <mail@arko.net>2015-08-08 00:34:17 -0700
commit05c8262d3dff0c50c77ac8a1c6933e18f63c71fe (patch)
treefad12f23170606843c268b99082620f47eabac7c
parent83bdb7f7ddc95bed78c18320bd8baa2ba8f3972a (diff)
parent2619a7e5778ede855fd194926aa1bce7c6a185c4 (diff)
downloadbundler-05c8262d3dff0c50c77ac8a1c6933e18f63c71fe.tar.gz
Merge pull request #3921 from bundler/seg-automatiek
[Rakefile] Use automatiek to manage vendoring
-rw-r--r--Rakefile80
-rw-r--r--bundler.gemspec11
2 files changed, 29 insertions, 62 deletions
diff --git a/Rakefile b/Rakefile
index 8d85b171ee..bc392e2a76 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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