aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-02 11:37:54 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-02 12:38:03 +0900
commitac06951c31c59781951a70788e4b0de2aa3d481c (patch)
tree323bc4515f9c25bc577d14509d812bd797c960b2
parent60f12c7d2e37ebb57193612421ab66d6368eff6e (diff)
downloadruby-ac06951c31c59781951a70788e4b0de2aa3d481c.tar.gz
file2lastrev.rb: separate options for `Output` and `VPath`
So the `--srcdir` option in this file can override the same option in `VPath`.
-rwxr-xr-xtool/file2lastrev.rb3
-rw-r--r--tool/lib/output.rb1
-rw-r--r--tool/lib/vpath.rb5
3 files changed, 8 insertions, 1 deletions
diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb
index db9e6fec42..a2b639a426 100755
--- a/tool/file2lastrev.rb
+++ b/tool/file2lastrev.rb
@@ -28,11 +28,13 @@ vcs = nil
OptionParser.new {|opts|
opts.banner << " paths..."
vcs_options = VCS.define_options(opts)
+ opts.new {@output.def_options(opts)}
srcdir = nil
opts.new
opts.on("--srcdir=PATH", "use PATH as source directory") do |path|
abort "#{File.basename(Program)}: srcdir is already set" if srcdir
srcdir = path
+ @output.vpath.add(srcdir)
end
opts.on("--changed", "changed rev") do
self.format = :changed
@@ -53,7 +55,6 @@ OptionParser.new {|opts|
opts.on("-q", "--suppress_not_found") do
@suppress_not_found = true
end
- @output.def_options(opts)
opts.order! rescue abort "#{File.basename(Program)}: #{$!}\n#{opts}"
begin
vcs = VCS.detect(srcdir || ".", vcs_options, opts.new)
diff --git a/tool/lib/output.rb b/tool/lib/output.rb
index 5e0e878322..584be76974 100644
--- a/tool/lib/output.rb
+++ b/tool/lib/output.rb
@@ -10,6 +10,7 @@ class Output
end
def def_options(opt)
+ opt.separator(" Output common options:")
opt.on('-o', '--output=PATH') {|v| @path = v}
opt.on('-t', '--timestamp[=PATH]') {|v| @timestamp = v || true}
opt.on('-c', '--[no-]if-change') {|v| @ifchange = v}
diff --git a/tool/lib/vpath.rb b/tool/lib/vpath.rb
index a52f840c30..fa819f3242 100644
--- a/tool/lib/vpath.rb
+++ b/tool/lib/vpath.rb
@@ -53,6 +53,7 @@ class VPath
end
def def_options(opt)
+ opt.separator(" VPath common options:")
opt.on("-I", "--srcdir=DIR", "add a directory to search path") {|dir|
@additional << dir
}
@@ -80,6 +81,10 @@ class VPath
@list
end
+ def add(path)
+ @additional << path
+ end
+
def strip(path)
prefix = list.map {|dir| Regexp.quote(dir)}
path.sub(/\A#{prefix.join('|')}(?:\/|\z)/, '')