From c23cb3adbe651e0fa6f3690e3df55e83cdfa6579 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 20 Jan 2016 08:14:24 +0000 Subject: extlibs.rb: add --cache option git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/extlibs.rb | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) (limited to 'tool') 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| -- cgit v1.2.3