Handle preperly comments in middle of lines in gems/bundled_gems

This commit is contained in:
Nobuyoshi Nakada 2025-08-12 13:47:22 +09:00
parent 428937a536
commit 6b2d9ed2a5
No known key found for this signature in database
GPG key ID: 3582D74E1FEE4465
6 changed files with 13 additions and 13 deletions

View file

@ -1539,12 +1539,14 @@ prepare-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=extract-gems)
extract-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=outdate-bundled-gems) extract-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=outdate-bundled-gems)
update-gems: $(HAVE_BASERUBY:yes=outdate-bundled-gems) update-gems: $(HAVE_BASERUBY:yes=outdate-bundled-gems)
split_option = -F"\s+|\#.*"
update-gems$(sequential): PHONY update-gems$(sequential): PHONY
$(ECHO) Downloading bundled gem files... $(ECHO) Downloading bundled gem files...
$(Q) $(BASERUBY) -C "$(srcdir)" \ $(Q) $(BASERUBY) -C "$(srcdir)" \
-I./tool -rdownloader -answ \ -I./tool -rdownloader $(split_option) -answ \
-e 'gem, ver = *$$F' \ -e 'gem, ver = *$$F' \
-e 'next if !ver or /^#/=~gem' \ -e 'next if !ver' \
-e 'old = Dir.glob("gems/#{gem}-*.gem")' \ -e 'old = Dir.glob("gems/#{gem}-*.gem")' \
-e 'gem = "#{gem}-#{ver}.gem"' \ -e 'gem = "#{gem}-#{ver}.gem"' \
-e 'Downloader::RubyGems.download(gem, "gems", nil) and' \ -e 'Downloader::RubyGems.download(gem, "gems", nil) and' \
@ -1556,10 +1558,10 @@ update-gems$(sequential): PHONY
extract-gems$(sequential): PHONY extract-gems$(sequential): PHONY
$(ECHO) Extracting bundled gem files... $(ECHO) Extracting bundled gem files...
$(Q) $(BASERUBY) -C "$(srcdir)" \ $(Q) $(BASERUBY) -C "$(srcdir)" \
-Itool/lib -rfileutils -rbundled_gem -answ \ -Itool/lib -rfileutils -rbundled_gem $(split_option) -answ \
-e 'BEGIN {d = ".bundle/gems"}' \ -e 'BEGIN {d = ".bundle/gems"}' \
-e 'gem, ver, _, rev = *$$F' \ -e 'gem, ver, _, rev = *$$F' \
-e 'next if !ver or /^#/=~gem' \ -e 'next if !ver' \
-e 'g = "#{gem}-#{ver}"' \ -e 'g = "#{gem}-#{ver}"' \
-e 'unless File.directory?("#{d}/#{g}")' \ -e 'unless File.directory?("#{d}/#{g}")' \
-e 'if rev and File.exist?(gs = "gems/src/#{gem}/#{gem}.gemspec")' \ -e 'if rev and File.exist?(gs = "gems/src/#{gem}/#{gem}.gemspec")' \
@ -1623,7 +1625,7 @@ yes-install-for-test-bundled-gems: yes-update-default-gemspecs
test-bundled-gems-fetch: yes-test-bundled-gems-fetch test-bundled-gems-fetch: yes-test-bundled-gems-fetch
yes-test-bundled-gems-fetch: clone-bundled-gems-src yes-test-bundled-gems-fetch: clone-bundled-gems-src
clone-bundled-gems-src: PHONY clone-bundled-gems-src: PHONY
$(Q) $(BASERUBY) -C $(srcdir)/gems ../tool/fetch-bundled_gems.rb BUNDLED_GEMS="$(BUNDLED_GEMS)" src bundled_gems $(Q) $(BASERUBY) -C $(srcdir) tool/fetch-bundled_gems.rb BUNDLED_GEMS="$(BUNDLED_GEMS)" gems/src gems/bundled_gems
no-test-bundled-gems-fetch: no-test-bundled-gems-fetch:
test-bundled-gems-prepare: $(TEST_RUNNABLE)-test-bundled-gems-prepare test-bundled-gems-prepare: $(TEST_RUNNABLE)-test-bundled-gems-prepare

View file

@ -309,7 +309,7 @@ HELP_EXTRA_TASKS = \
# 4. "gem x.y.z URL" -> "gem-x.y.z" # 4. "gem x.y.z URL" -> "gem-x.y.z"
bundled-gems := $(shell sed \ bundled-gems := $(shell sed \
-e 's/[ ][ ]*/ /g' \ -e 's/[ ][ ]*/ /g' \
-e 's/^ //;/\#/d;s/ *$$//;/^$$/d' \ -e 's/^ //;s/\#.*//;s/ *$$//;/^$$/d' \
$(if $(filter yes,$(HAVE_GIT)), \ $(if $(filter yes,$(HAVE_GIT)), \
-e 's/^\(.*\) \(.*\) \(.*\) \(.*\)/\1|\2|\4|\3/' \ -e 's/^\(.*\) \(.*\) \(.*\) \(.*\)/\1|\2|\4|\3/' \
) \ ) \

View file

@ -1,4 +1,4 @@
#!ruby -an #!ruby -alnF\s+|#.*
BEGIN { BEGIN {
require 'fileutils' require 'fileutils'
require_relative 'lib/colorize' require_relative 'lib/colorize'
@ -21,7 +21,6 @@ BEGIN {
n, v, u, r = $F n, v, u, r = $F
next unless n next unless n
next if n =~ /^#/
next if bundled_gems&.all? {|pat| !File.fnmatch?(pat, n)} next if bundled_gems&.all? {|pat| !File.fnmatch?(pat, n)}
unless File.exist?("#{n}/.git") unless File.exist?("#{n}/.git")

View file

@ -115,7 +115,7 @@ srcdir = Removal.new(ARGV.shift)
curdir = !srcdir.base || File.identical?(srcdir.base, ".") ? srcdir : Removal.new curdir = !srcdir.base || File.identical?(srcdir.base, ".") ? srcdir : Removal.new
bundled = File.readlines("#{srcdir.base}gems/bundled_gems"). bundled = File.readlines("#{srcdir.base}gems/bundled_gems").
grep(/^(\w\S+)\s+\S+(?:\s+\S+\s+(\S+))?/) {$~.captures}.to_h rescue nil grep(/^(\w[^\#\s]+)\s+[^\#\s]+(?:\s+[^\#\s]+\s+([^\#\s]+))?/) {$~.captures}.to_h rescue nil
srcdir.glob(".bundle/gems/*/") do |dir| srcdir.glob(".bundle/gems/*/") do |dir|
base = File.basename(dir) base = File.basename(dir)

View file

@ -25,8 +25,7 @@ exit_code = 0
ruby = ENV['RUBY'] || RbConfig.ruby ruby = ENV['RUBY'] || RbConfig.ruby
failed = [] failed = []
File.foreach("#{gem_dir}/bundled_gems") do |line| File.foreach("#{gem_dir}/bundled_gems") do |line|
next if /^\s*(?:#|$)/ =~ line next unless gem = line[/^[^\s\#]+/]
gem = line.split.first
next unless bundled_gems.empty? || bundled_gems.split(",").include?(gem) next unless bundled_gems.empty? || bundled_gems.split(",").include?(gem)
next unless File.directory?("#{gem_dir}/src/#{gem}/test") next unless File.directory?("#{gem_dir}/src/#{gem}/test")

View file

@ -1,4 +1,4 @@
#!ruby -pla #!ruby -alpF\s+|#.*
BEGIN { BEGIN {
require 'rubygems' require 'rubygems'
date = nil date = nil
@ -9,7 +9,7 @@ output = STDERR if ARGF.file == STDIN
END { END {
output.print date.strftime("latest_date=%F") if date output.print date.strftime("latest_date=%F") if date
} }
unless /^[^#]/ !~ (gem = $F[0]) if gem = $F[0]
ver = Gem::Version.new($F[1]) ver = Gem::Version.new($F[1])
(gem, src), = Gem::SpecFetcher.fetcher.detect(:latest) {|s| (gem, src), = Gem::SpecFetcher.fetcher.detect(:latest) {|s|
s.platform == "ruby" && s.name == gem s.platform == "ruby" && s.name == gem