mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/un.rb: add descriptions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d468497778
commit
32fcbb5b6b
1 changed files with 106 additions and 24 deletions
130
lib/un.rb
130
lib/un.rb
|
@ -1,3 +1,25 @@
|
||||||
|
#
|
||||||
|
# = un.rb
|
||||||
|
#
|
||||||
|
# Copyright (c) 2003 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
#
|
||||||
|
# This program is free software.
|
||||||
|
# You can distribute/modify this program under the same terms of Ruby.
|
||||||
|
#
|
||||||
|
# == Utilities to replace common UNIX commands in Makefiles etc
|
||||||
|
#
|
||||||
|
# == SYNOPSIS
|
||||||
|
#
|
||||||
|
# ruby -run -e cp -- [OPTION] SOURCE DEST
|
||||||
|
# ruby -run -e ln -- [OPTION] TARGET LINK_NAME
|
||||||
|
# ruby -run -e mv -- [OPTION] SOURCE DEST
|
||||||
|
# ruby -run -e rm -- [OPTION] FILE
|
||||||
|
# ruby -run -e mkdir -- [OPTION] DIRS
|
||||||
|
# ruby -run -e rmdir -- [OPTION] DIRS
|
||||||
|
# ruby -run -e install -- [OPTION] SOURCE DEST
|
||||||
|
# ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
|
||||||
|
# ruby -run -e touch -- [OPTION] FILE
|
||||||
|
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
require 'getopts'
|
require 'getopts'
|
||||||
|
|
||||||
|
@ -28,30 +50,14 @@ def setup(options = "")
|
||||||
yield ARGV, options, $OPT
|
yield ARGV, options, $OPT
|
||||||
end
|
end
|
||||||
|
|
||||||
def mkdir
|
#
|
||||||
setup("p") do |argv, options, opt|
|
# Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY
|
||||||
cmd = "mkdir"
|
#
|
||||||
cmd += "_p" if options.delete :preserve
|
# ruby -run -e cp -- [OPTION] SOURCE DEST
|
||||||
FileUtils.send cmd, argv, options
|
#
|
||||||
end
|
# -p preserve file attributes if possible
|
||||||
end
|
# -r copy recursively
|
||||||
|
#
|
||||||
def rmdir
|
|
||||||
setup do |argv, options|
|
|
||||||
FileUtils.rmdir argv, options
|
|
||||||
end
|
|
||||||
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
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def cp
|
def cp
|
||||||
setup("pr") do |argv, options, opt|
|
setup("pr") do |argv, options, opt|
|
||||||
cmd = "cp"
|
cmd = "cp"
|
||||||
|
@ -62,6 +68,29 @@ def cp
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create a link to the specified TARGET with LINK_NAME.
|
||||||
|
#
|
||||||
|
# ruby -run -e ln -- [OPTION] TARGET LINK_NAME
|
||||||
|
#
|
||||||
|
# -s make symbolic links instead of hard links
|
||||||
|
# -f remove existing destination files
|
||||||
|
#
|
||||||
|
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
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
|
||||||
|
#
|
||||||
|
# ruby -run -e mv SOURCE DEST
|
||||||
|
#
|
||||||
def mv
|
def mv
|
||||||
setup do |argv, options|
|
setup do |argv, options|
|
||||||
dest = argv.pop
|
dest = argv.pop
|
||||||
|
@ -70,6 +99,14 @@ def mv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Remove the FILE
|
||||||
|
#
|
||||||
|
# ruby -run -e rm -- [OPTION] FILE
|
||||||
|
#
|
||||||
|
# -f ignore nonexistent files
|
||||||
|
# -r remove the contents of directories recursively
|
||||||
|
#
|
||||||
def rm
|
def rm
|
||||||
setup("fr") do |argv, options, opt|
|
setup("fr") do |argv, options, opt|
|
||||||
cmd = "rm"
|
cmd = "rm"
|
||||||
|
@ -78,6 +115,41 @@ def rm
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create the DIR, if they do not already exist.
|
||||||
|
#
|
||||||
|
# ruby -run -e mkdir -- [OPTION] DIR
|
||||||
|
#
|
||||||
|
# -p no error if existing, make parent directories as needed
|
||||||
|
#
|
||||||
|
def mkdir
|
||||||
|
setup("p") do |argv, options, opt|
|
||||||
|
cmd = "mkdir"
|
||||||
|
cmd += "_p" if options.delete :preserve
|
||||||
|
FileUtils.send cmd, argv, options
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Remove the DIR.
|
||||||
|
#
|
||||||
|
# ruby -run -e rmdir DIR
|
||||||
|
#
|
||||||
|
def rmdir
|
||||||
|
setup do |argv, options|
|
||||||
|
FileUtils.rmdir argv, options
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy SOURCE to DEST.
|
||||||
|
#
|
||||||
|
# ruby -run -e install -- [OPTION] SOURCE DEST
|
||||||
|
#
|
||||||
|
# -p apply access/modification times of SOURCE files to
|
||||||
|
# corresponding destination files
|
||||||
|
# -m set permission mode (as in chmod), instead of 0755
|
||||||
|
#
|
||||||
def install
|
def install
|
||||||
setup("pm:") do |argv, options, opt|
|
setup("pm:") do |argv, options, opt|
|
||||||
options[:mode] = opt["m"] ? opt["m"].oct : 0755
|
options[:mode] = opt["m"] ? opt["m"].oct : 0755
|
||||||
|
@ -87,6 +159,11 @@ def install
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Change the mode of each FILE to OCTAL-MODE.
|
||||||
|
#
|
||||||
|
# ruby -run -e chmod OCTAL-MODE FILE
|
||||||
|
#
|
||||||
def chmod
|
def chmod
|
||||||
setup do |argv, options|
|
setup do |argv, options|
|
||||||
mode = argv.shift.oct
|
mode = argv.shift.oct
|
||||||
|
@ -94,6 +171,11 @@ def chmod
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Update the access and modification times of each FILE to the current time.
|
||||||
|
#
|
||||||
|
# ruby -run -e touch FILE
|
||||||
|
#
|
||||||
def touch
|
def touch
|
||||||
setup do |argv, options|
|
setup do |argv, options|
|
||||||
FileUtils.touch argv, options
|
FileUtils.touch argv, options
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue