diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-07 02:06:18 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-07 02:06:18 +0000 |
commit | aa68fd85b9c760b0281b7be803ae4a5505ca7090 (patch) | |
tree | 7221e11c4daf80787e1f3a7f7cb1c4dc62cc435f /tool | |
parent | 6268830ba87bf80852f9a30d4cff7ad250c379dd (diff) | |
download | ruby-aa68fd85b9c760b0281b7be803ae4a5505ca7090.tar.gz |
expand-config.rb: without fake.rb
* win32/Makefile.sub (ruby_pc): without fake.rb.
* tool/expand-config.rb: no longer depends on fake.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rwxr-xr-x | tool/expand-config.rb | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/tool/expand-config.rb b/tool/expand-config.rb index fb2edd02e8..c132d4afaa 100755 --- a/tool/expand-config.rb +++ b/tool/expand-config.rb @@ -1,7 +1,32 @@ -STDOUT.binmode +#!./miniruby -s + +config = File.read(conffile = $config) +config.sub!(/^(\s*)RUBY_VERSION\b.*(\sor\s*)$/, '\1true\2') +rbconfig = Module.new {module_eval(config, conffile)}::RbConfig +config = $expand ? rbconfig::CONFIG : rbconfig::MAKEFILE_CONFIG +config["RUBY_RELEASE_DATE"] ||= + File.read(File.expand_path("../../version.h", __FILE__))[/^\s*#\s*define\s+RUBY_RELEASE_DATE\s+"(.*)"/, 1] + +while /\A(\w+)=(.*)/ =~ ARGV[0] + config[$1] = $2 + ARGV.shift +end + +re = /@(#{config.keys.map {|k| Regexp.quote(k)}.join('|')})@/ + +if $output + output = open($output, "wb", $mode &&= $mode.oct) + output.chmod($mode) if $mode +else + output = STDOUT + output.binmode +end + ARGF.each do |line| line.gsub!(/@([a-z_]\w*)@/i) { - (RbConfig::MAKEFILE_CONFIG[$1] or "").gsub(/\$\((.+?)\)/, %Q[${\\1}]) + s = config.fetch($1, $expand ? $& : "") + s = s.gsub(/\$\((.+?)\)/, %Q[${\\1}]) unless $expand + s } - puts line + output.puts line end |