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