diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-20 08:14:24 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-20 08:14:24 +0000 |
commit | c23cb3adbe651e0fa6f3690e3df55e83cdfa6579 (patch) | |
tree | 36b8057fd2ccc4ac4c542d1677476338662534a6 | |
parent | 2b02ffa985d3b6419b91f3bae9bd22bc89fb7dc9 (diff) | |
download | ruby-c23cb3adbe651e0fa6f3690e3df55e83cdfa6579.tar.gz |
extlibs.rb: add --cache option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rwxr-xr-x | tool/extlibs.rb | 44 |
2 files changed, 31 insertions, 17 deletions
@@ -1,3 +1,7 @@ +Wed Jan 20 17:13:39 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + + Tue Jan 19 17:03:40 2016 Martin Duerst <duerst@it.aoyama.ac.jp> * common.mk: Added Unicode data file CaseFolding.txt to be additionally diff --git a/tool/extlibs.rb b/tool/extlibs.rb index 6323d8fdcd..710d8433b5 100755 --- a/tool/extlibs.rb +++ b/tool/extlibs.rb @@ -3,9 +3,6 @@ require 'fileutils' require 'digest' require_relative 'downloader' -cache_dir = ".downloaded-cache" -FileUtils.mkdir_p(cache_dir) - def do_download(url, base, cache_dir) Downloader.download(url, base, cache_dir, nil) end @@ -74,23 +71,36 @@ def do_patch(dest, patch, args) $?.success? or raise "failed to patch #{patch}" end -case ARGV[0] -when '--download' - mode = :download - ARGV.shift -when '--extract' - mode = :extract - ARGV.shift -when '--patch' - mode = :patch - ARGV.shift -when '--all' - mode = :all +cache_dir = ENV['CACHE_DIR'] || ".downloaded-cache" +mode = :all +until ARGV.empty? + case ARGV[0] + when '--download' + mode = :download + when '--extract' + mode = :extract + when '--patch' + mode = :patch + when '--all' + mode = :all + when '--cache' + ARGV.shift + cache_dir = ARGV[0] + when /\A--cache=/ + cache_dir = $' + when '--' + ARGV.shift + break + when /\A-/ + abort "unknown option: #{ARGV[0]}" + else + break + end ARGV.shift -else - mode = :all end +FileUtils.mkdir_p(cache_dir) + success = true ARGV.each do |dir| Dir.glob("#{dir}/**/extlibs") do |list| |