summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in6
-rwxr-xr-x[-rw-r--r--]tool/fetch-bundled_gems.rb34
2 files changed, 26 insertions, 14 deletions
diff --git a/Makefile.in b/Makefile.in
index ca5a0fafce..dbb126b869 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -476,8 +476,10 @@ enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)
test-bundled-gems-precheck: $(arch)-fake.rb programs
-yes-test-bundled-gems-prepare: test-bundled-gems-precheck
- $(Q) $(BASERUBY) $(srcdir)/tool/fetch-bundled_gems.rb $(srcdir)
+test-bundled-gems-fetch: $(PREP)
+ $(Q) $(BASERUBY) -C $(srcdir)/gems ../tool/fetch-bundled_gems.rb src bundled_gems
+
+yes-test-bundled-gems-prepare: test-bundled-gems-precheck test-bundled-gems-fetch
$(XRUBY) -C "$(srcdir)" bin/gem install --no-ri --no-rdoc \
--install-dir .bundle --conservative 'minitest:~> 5' 'test-unit' 'rake' 'hoe' 'yard' 'pry' 'packnga'
diff --git a/tool/fetch-bundled_gems.rb b/tool/fetch-bundled_gems.rb
index a0d7181b68..ae3068d35c 100644..100755
--- a/tool/fetch-bundled_gems.rb
+++ b/tool/fetch-bundled_gems.rb
@@ -1,17 +1,27 @@
-require 'fileutils'
+#!ruby -an
+BEGIN {
+ require 'fileutils'
-File.readlines("#{ARGV[0]}/gems/bundled_gems").each do |gem|
- n, v, u = gem.split
+ dir = ARGV.shift
+ ARGF.eof?
+ FileUtils.mkdir_p(dir)
+ Dir.chdir(dir)
+}
+n, v, u = $F
+case n
+when "minitest"
+ v = "master"
+when "test-unit"
+else
v = "v" + v
+end
- case n
- when "minitest"
- v = "master"
- when "test-unit"
- v = v[1..-1]
- end
-
- FileUtils.mkdir_p "#{ARGV[0]}/gems/src"
- `#{ARGV[0]}/tool/git-refresh -C #{ARGV[0]}/gems/src --branch #{v} #{u} #{n}`
+if File.directory?(n)
+ puts "updating #{n} ..."
+ system(*%W"git fetch", chdir: n) or abort
+else
+ puts "retrieving #{n} ..."
+ system(*%W"git clone #{u} #{n}") or abort
end
+system(*%W"git checkout #{v}", chdir: n) or abort