runruby.rb: add -C/--chdir option

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-11-05 21:13:17 +00:00
parent 0523a4200c
commit ca551eed45

View File

@ -5,8 +5,15 @@
show = false show = false
precommand = [] precommand = []
srcdir = File.realpath('..', File.dirname(__FILE__))
while arg = ARGV[0] while arg = ARGV[0]
break ARGV.shift if arg == '--' break ARGV.shift if arg == '--'
case arg
when '-C', /\A-C(.+)/m
ARGV.shift
Dir.chdir($1 || ARGV.shift)
next
end
/\A--([-\w]+)(?:=(.*))?\z/ =~ arg or break /\A--([-\w]+)(?:=(.*))?\z/ =~ arg or break
arg, value = $1, $2 arg, value = $1, $2
re = Regexp.new('\A'+arg.gsub(/\w+\b/, '\&\\w*')+'\z', "i") re = Regexp.new('\A'+arg.gsub(/\w+\b/, '\&\\w*')+'\z', "i")
@ -35,6 +42,8 @@ while arg = ARGV[0]
precommand.concat(Shellwords.shellwords(value)) precommand.concat(Shellwords.shellwords(value))
when re =~ "show" when re =~ "show"
show = true show = true
when re =~ "chdir"
Dir.chdir(value)
else else
break break
end end
@ -53,10 +62,10 @@ unless defined?(File.realpath)
end end
end end
srcdir ||= File.realpath('..', File.dirname(__FILE__))
begin begin
conffile = File.realpath('rbconfig.rb', archdir) conffile = File.realpath('rbconfig.rb', archdir)
rescue Errno::ENOENT => e rescue Errno::ENOENT => e
# retry if !archdir and ARGV[0] and File.directory?(archdir = ARGV.shift)
abort "#$0: rbconfig.rb not found, use --archdir option" abort "#$0: rbconfig.rb not found, use --archdir option"
end end