Top Level Namespace
Defined Under Namespace
Modules: FileUtils
Instance Method Summary collapse
-
#chmod ⇒ Object
Change the mode of each FILE to OCTAL-MODE.
-
#cp ⇒ Object
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
-
#help ⇒ Object
Display help message.
-
#install ⇒ Object
Copy SOURCE to DEST.
-
#ln ⇒ Object
Create a link to the specified TARGET with LINK_NAME.
-
#mkdir ⇒ Object
Create the DIR, if they do not already exist.
-
#mv ⇒ Object
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
-
#rm ⇒ Object
Remove the FILE.
-
#rmdir ⇒ Object
Remove the DIR.
- #setup(options = "") {|ARGV, opt_hash| ... } ⇒ Object
-
#touch ⇒ Object
Update the access and modification times of each FILE to the current time.
Instance Method Details
#chmod ⇒ Object
Change the mode of each FILE to OCTAL-MODE.
ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
-v verbose
195 196 197 198 199 200 |
# File 'lib/un.rb', line 195 def chmod setup do |argv, | mode = argv.shift.oct FileUtils.chmod mode, argv, end end |
#cp ⇒ Object
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY
ruby -run -e cp -- [OPTION] SOURCE DEST
-p preserve file attributes if possible
-r copy recursively
-v verbose
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/un.rb', line 68 def cp setup("pr") do |argv, | cmd = "cp" cmd += "_r" if .delete :r [:preserve] = true if .delete :p dest = argv.pop argv = argv[0] if argv.size == 1 FileUtils.send cmd, argv, dest, end end |
#help ⇒ Object
Display help message.
ruby -run -e help [COMMAND]
222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/un.rb', line 222 def help setup do |argv,| all = argv.empty? open(__FILE__) do |me| while me.gets("##\n") if help = me.gets("\n\n") if all or argv.delete help[/-e \w+/].sub(/-e /, "") print help.gsub(/^# ?/, "") end end end end end end |
#install ⇒ Object
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
-v verbose
177 178 179 180 181 182 183 184 185 |
# File 'lib/un.rb', line 177 def install setup("pm:") do |argv, | [:mode] = (mode = .delete :m) ? mode.oct : 0755 [:preserve] = true if .delete :p dest = argv.pop argv = argv[0] if argv.size == 1 FileUtils.install argv, dest, end end |
#ln ⇒ Object
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
-v verbose
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/un.rb', line 89 def ln setup("sf") do |argv, | cmd = "ln" cmd += "_s" if .delete :s [:force] = true if .delete :f dest = argv.pop argv = argv[0] if argv.size == 1 FileUtils.send cmd, argv, dest, end end |
#mkdir ⇒ Object
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
-v verbose
144 145 146 147 148 149 150 |
# File 'lib/un.rb', line 144 def mkdir setup("p") do |argv, | cmd = "mkdir" cmd += "_p" if .delete :p FileUtils.send cmd, argv, end end |
#mv ⇒ Object
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
ruby -run -e mv -- [OPTION] SOURCE DEST
-v verbose
108 109 110 111 112 113 114 |
# File 'lib/un.rb', line 108 def mv setup do |argv, | dest = argv.pop argv = argv[0] if argv.size == 1 FileUtils.mv argv, dest, end end |
#rm ⇒ Object
Remove the FILE
ruby -run -e rm -- [OPTION] FILE
-f ignore nonexistent files
-r remove the contents of directories recursively
-v verbose
126 127 128 129 130 131 132 133 |
# File 'lib/un.rb', line 126 def rm setup("fr") do |argv, | cmd = "rm" cmd += "_r" if .delete :r [:force] = true if .delete :f FileUtils.send cmd, argv, end end |
#rmdir ⇒ Object
Remove the DIR.
ruby -run -e rmdir -- [OPTION] DIR
-v verbose
160 161 162 163 164 |
# File 'lib/un.rb', line 160 def rmdir setup do |argv, | FileUtils.rmdir argv, end end |
#setup(options = "") {|ARGV, opt_hash| ... } ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/un.rb', line 32 def setup( = "") ARGV.map! do |x| case x when /^-/ x.delete "^-#{}v" when /[*?\[{]/ Dir[x] else x end end ARGV.flatten! ARGV.delete_if{|x| x == "-"} opt_hash = {} OptionParser.new do |o| .scan(/.:?/) do |s| o.on("-" + s.tr(":", " ")) do |val| opt_hash[s.delete(":").intern] = val end end o.on("-v") do opt_hash[:verbose] = true end o.parse! end yield ARGV, opt_hash end |