diff options
-rw-r--r-- | common.mk | 5 | ||||
-rw-r--r-- | configure.in | 5 | ||||
-rw-r--r-- | tool/downloader.rb | 33 | ||||
-rwxr-xr-x | tool/get-config_files | 12 |
4 files changed, 36 insertions, 19 deletions
@@ -1092,9 +1092,8 @@ update-gems: PHONY update-unicode: $(ECHO) Downloading Unicode data files... - $(Q) $(BASERUBY) -I$(srcdir)/tool -rdownloader -w \ - -C "$(srcdir)/enc/unicode/data" \ - -e 'ARGV.each{|f|Downloader::Unicode.download(f)}' \ + $(Q) $(BASERUBY) -C "$(srcdir)/enc/unicode/data" \ + ../../../tool/downloader.rb unicode \ UnicodeData.txt CompositionExclusions.txt NormalizationTest.txt info: info-program info-libruby_a info-libruby_so info-arch diff --git a/configure.in b/configure.in index d2373ed2b6..c6142a4505 100644 --- a/configure.in +++ b/configure.in @@ -50,10 +50,7 @@ else fi AC_SUBST(BASERUBY) -for conf in config.guess config.sub; do - test -f "$srcdir/tool/$conf" && continue - $BASERUBY -C "$srcdir/tool" get-config_files $conf -done +$BASERUBY -C "$srcdir/tool" downloader.rb -e gnu config.guess config.sub AC_DEFUN([RUBY_MINGW32], [AS_CASE(["$host_os"], diff --git a/tool/downloader.rb b/tool/downloader.rb index e909c10e45..b1c1449cf8 100644 --- a/tool/downloader.rb +++ b/tool/downloader.rb @@ -53,6 +53,7 @@ class Downloader # download :unicode, 'UnicodeData.txt', 'enc/unicode/data' def self.download(url, name, dir = nil, ims = true) file = dir ? File.join(dir, name) : name + return true if ims.nil? and File.exist?(file) url = URI(url) if $VERBOSE $stdout.print "downloading #{name} ... " @@ -89,3 +90,35 @@ class Downloader raise e.class, "failed to download #{name}\n#{e.message}: #{url}", e.backtrace end end + +if $0 == __FILE__ + ims = true + until ARGV.empty? + case ARGV[0] + when '-d' + destdir = ARGV[1] + ARGV.shift(2) + when '-e' + ims = nil + ARGV.shift + when /\A-/ + abort "#{$0}: unknown option #{ARGV[0]}" + else + break + end + end + dl = Downloader.constants.find do |name| + ARGV[0].casecmp(name.to_s) == 0 + end + $VERBOSE = true + if dl + dl = Downloader.const_get(dl) + ARGV.shift + ARGV.each do |name| + dl.download(name, destdir, ims) + end + else + abort "usage: #{$0} url name" unless ARGV.size == 2 + Downloader.download(*ARGV, destdir, ims) + end +end diff --git a/tool/get-config_files b/tool/get-config_files deleted file mode 100755 index 113fee0966..0000000000 --- a/tool/get-config_files +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/ruby -require File.expand_path('../downloader', __FILE__) -ARGV.each {|n| - STDOUT.print "Downloading #{n}..."; STDOUT.flush - begin - Downloader.download(:gnu, n) - STDOUT.puts - rescue => e - STDOUT.puts - abort("#{$0}: #{e.message}") - end -} |