summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-20 08:14:24 (GMT)
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-20 08:14:24 (GMT)
commitc23cb3adbe651e0fa6f3690e3df55e83cdfa6579 (patch)
tree36b8057fd2ccc4ac4c542d1677476338662534a6 /tool
parent2b02ffa985d3b6419b91f3bae9bd22bc89fb7dc9 (diff)
extlibs.rb: add --cache option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rwxr-xr-xtool/extlibs.rb44
1 files changed, 27 insertions, 17 deletions
diff --git a/tool/extlibs.rb b/tool/extlibs.rb
index 6323d8f..710d843 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|