1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/un.rb: use OptionParser instead of getopts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
eban 2004-02-14 14:27:43 +00:00
parent 34a18bb526
commit e8262c8f04
2 changed files with 34 additions and 22 deletions

View file

@ -1,3 +1,7 @@
Sat Feb 14 23:26:27 2004 WATANABE Hirofumi <eban@ruby-lang.org>
* lib/un.rb: use OptionParser instead of getopts.
Sat Feb 14 11:28:14 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp> Sat Feb 14 11:28:14 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
* sample/drb/*: import lib/drb/sample * sample/drb/*: import lib/drb/sample

View file

@ -21,20 +21,19 @@
# ruby -run -e touch -- [OPTION] FILE # ruby -run -e touch -- [OPTION] FILE
# ruby -run -e help [COMMAND] # ruby -run -e help [COMMAND]
require 'fileutils' require "fileutils"
require 'getopts' require "optparse"
module FileUtils module FileUtils
# @fileutils_label = '' # @fileutils_label = ""
@fileutils_output = $stdout @fileutils_output = $stdout
end end
def setup(options = "") def setup(options = "")
options += "v"
ARGV.map! do |x| ARGV.map! do |x|
case x case x
when /^-/ when /^-/
x.delete "^-#{options}" x.delete "^-#{options}v"
when /[*?\[{]/ when /[*?\[{]/
Dir[x] Dir[x]
else else
@ -42,13 +41,18 @@ def setup(options = "")
end end
end end
ARGV.flatten! ARGV.flatten!
ARGV.delete_if{|x| x == '-'} ARGV.delete_if{|x| x == "-"}
getopts(options) opt_hash = {}
options = {} OptionParser.new do |o|
options[:verbose] = true if $OPT["v"] options.scan(/.:?/) do |s|
options[:force] = true if $OPT["f"] o.on("-" + s.tr(":", " ")) do |val|
options[:preserve] = true if $OPT["p"] opt_hash[s.delete(":").intern] = val
yield ARGV, options, $OPT end
end
o.on("-v") do opt_hash[:verbose] = true end
o.parse!
end
yield ARGV, opt_hash
end end
## ##
@ -62,9 +66,10 @@ end
# #
def cp def cp
setup("pr") do |argv, options, opt| setup("pr") do |argv, options|
cmd = "cp" cmd = "cp"
cmd += "_r" if opt["r"] cmd += "_r" if options.delete :r
options[:preserve] = true if options.delete :p
dest = argv.pop dest = argv.pop
argv = argv[0] if argv.size == 1 argv = argv[0] if argv.size == 1
FileUtils.send cmd, argv, dest, options FileUtils.send cmd, argv, dest, options
@ -82,9 +87,10 @@ end
# #
def ln def ln
setup("sf") do |argv, options, opt| setup("sf") do |argv, options|
cmd = "ln" cmd = "ln"
cmd += "_s" if opt["s"] cmd += "_s" if options.delete :s
options[:force] = true if options.delete :f
dest = argv.pop dest = argv.pop
argv = argv[0] if argv.size == 1 argv = argv[0] if argv.size == 1
FileUtils.send cmd, argv, dest, options FileUtils.send cmd, argv, dest, options
@ -118,9 +124,10 @@ end
# #
def rm def rm
setup("fr") do |argv, options, opt| setup("fr") do |argv, options|
cmd = "rm" cmd = "rm"
cmd += "_r" if opt["r"] cmd += "_r" if options.delete :r
options[:force] = true if options.delete :f
FileUtils.send cmd, argv, options FileUtils.send cmd, argv, options
end end
end end
@ -135,9 +142,9 @@ end
# #
def mkdir def mkdir
setup("p") do |argv, options, opt| setup("p") do |argv, options|
cmd = "mkdir" cmd = "mkdir"
cmd += "_p" if options.delete :preserve cmd += "_p" if options.delete :p
FileUtils.send cmd, argv, options FileUtils.send cmd, argv, options
end end
end end
@ -168,8 +175,9 @@ end
# #
def install def install
setup("pm:") do |argv, options, opt| setup("pm:") do |argv, options|
options[:mode] = opt["m"] ? opt["m"].oct : 0755 options[:mode] = (mode = options.delete :m) ? mode.oct : 0755
options[:preserve] = true if options.delete :p
dest = argv.pop dest = argv.pop
argv = argv[0] if argv.size == 1 argv = argv[0] if argv.size == 1
FileUtils.install argv, dest, options FileUtils.install argv, dest, options