mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/fileutils.rb (mkdir): remove trailing `/' from pathes.
* lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238] * lib/fileutils.rb (rmdir_r): ditto. * lib/fileutils.rb (fu_copy_dir): check if it is a directory after mkdir(2). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6de4020c30
commit
232b4c2073
3 changed files with 53 additions and 30 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
Fri Dec 12 19:33:06 2003 Minero Aoki <aamine@loveruby.net>
|
||||
|
||||
* lib/fileutils.rb (mkdir): remove trailing `/' from pathes.
|
||||
|
||||
* lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238]
|
||||
|
||||
* lib/fileutils.rb (rmdir_r): ditto.
|
||||
|
||||
* lib/fileutils.rb (fu_copy_dir): check if it is a directory after
|
||||
mkdir(2).
|
||||
|
||||
Fri Dec 12 06:06:09 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* eval.c (proc_invoke): fix class name in warning message for
|
||||
|
|
|
@ -143,7 +143,7 @@ module FileUtils
|
|||
|
||||
mode = options[:mode] || (0777 & ~File.umask)
|
||||
list.each do |dir|
|
||||
Dir.mkdir dir, mode
|
||||
Dir.mkdir dir.sub(%r</\z>, ''), mode
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -209,7 +209,7 @@ module FileUtils
|
|||
return if options[:noop]
|
||||
|
||||
list.each do |dir|
|
||||
Dir.rmdir dir
|
||||
Dir.rmdir dir.sub(%r</\z>, '')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -357,8 +357,11 @@ module FileUtils
|
|||
|
||||
def fu_copy_dir(src, dest, rel, preserve) #:nodoc:
|
||||
fu_preserve_attr(preserve, "#{src}/#{rel}", "#{dest}/#{rel}") {|s,d|
|
||||
dir = File.expand_path(d) # to remove '/./'
|
||||
Dir.mkdir dir unless File.directory?(dir)
|
||||
begin
|
||||
Dir.mkdir File.expand_path(d)
|
||||
rescue => err
|
||||
raise unless File.directory?(d)
|
||||
end
|
||||
}
|
||||
Dir.entries("#{src}/#{rel}").each do |fname|
|
||||
if File.directory?(File.join(src,rel,fname))
|
||||
|
@ -585,7 +588,7 @@ module FileUtils
|
|||
end
|
||||
end
|
||||
begin
|
||||
Dir.rmdir dir
|
||||
Dir.rmdir dir.sub(%r</\z>, '')
|
||||
rescue Errno::ENOENT
|
||||
raise unless force
|
||||
end
|
||||
|
@ -601,9 +604,10 @@ module FileUtils
|
|||
def compare_file(a, b)
|
||||
return false unless File.size(a) == File.size(b)
|
||||
File.open(a, 'rb') {|fa|
|
||||
File.open(b, 'rb') {|fb|
|
||||
File.open(b, 'rb') {|fb|
|
||||
return compare_stream(fa, fb)
|
||||
} }
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
alias identical? compare_file
|
||||
|
@ -644,11 +648,11 @@ module FileUtils
|
|||
|
||||
fu_each_src_dest(src, dest) do |s,d|
|
||||
unless File.exist?(d) and compare_file(s,d)
|
||||
remove_file d, true
|
||||
st = File.stat(s) if options[:preserve]
|
||||
copy_file s, d
|
||||
File.utime st.atime, st.mtime, d if options[:preserve]
|
||||
File.chmod options[:mode], d if options[:mode]
|
||||
remove_file d, true
|
||||
st = File.stat(s) if options[:preserve]
|
||||
copy_file s, d
|
||||
File.utime st.atime, st.mtime, d if options[:preserve]
|
||||
File.chmod options[:mode], d if options[:mode]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -694,7 +698,7 @@ module FileUtils
|
|||
File.utime(t, t, fname)
|
||||
rescue Errno::ENOENT
|
||||
File.open(fname, 'a') {
|
||||
;
|
||||
;
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -722,23 +726,16 @@ module FileUtils
|
|||
end
|
||||
|
||||
def fu_each_src_dest0(src, dest)
|
||||
unless src.is_a?(Array)
|
||||
yield src.to_str, fu_dest_filename(src.to_str, dest.to_str)
|
||||
else
|
||||
dir = dest.to_str
|
||||
#raise ArgumentError, "not a directory: #{dir}" unless File.directory?(dir)
|
||||
dir += (dir[-1,1] == '/') ? '' : '/'
|
||||
src.map {|s| s.to_str }.each do |fname|
|
||||
yield fname, dir + File.basename(fname)
|
||||
if src.is_a?(Array)
|
||||
src.each do |s|
|
||||
yield s.to_str, File.join(dest, File.basename(s))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def fu_dest_filename(src, dest)
|
||||
if File.directory?(dest)
|
||||
(dest[-1,1] == '/' ? dest : dest + '/') + File.basename(src)
|
||||
else
|
||||
dest
|
||||
if File.directory?(dest)
|
||||
yield src.to_str, File.join(dest, File.basename(src))
|
||||
else
|
||||
yield src.to_str, dest.to_str
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -164,6 +164,9 @@ end
|
|||
cp fname, 'tmp'
|
||||
assert_same_file fname, 'tmp/' + File.basename(fname)
|
||||
|
||||
cp fname, 'tmp/'
|
||||
assert_same_file fname, 'tmp/' + File.basename(fname)
|
||||
|
||||
cp fname, 'tmp/preserve', :preserve => true
|
||||
assert_same_file fname, 'tmp/preserve'
|
||||
a = File.stat(fname)
|
||||
|
@ -221,10 +224,17 @@ end
|
|||
end
|
||||
|
||||
def test_mv
|
||||
mkdir 'tmp/dest'
|
||||
TARGETS.each do |fname|
|
||||
cp fname, 'tmp/mvsrc'
|
||||
mv 'tmp/mvsrc', 'tmp/mvdest'
|
||||
assert_same_file fname, 'tmp/mvdest'
|
||||
|
||||
mv 'tmp/mvdest', 'tmp/dest/'
|
||||
assert_same_file fname, 'tmp/dest/mvdest'
|
||||
|
||||
mv 'tmp/dest/mvdest', 'tmp'
|
||||
assert_same_file fname, 'tmp/mvdest'
|
||||
end
|
||||
|
||||
# src==dest (1) same path
|
||||
|
@ -474,6 +484,10 @@ end
|
|||
assert_directory 'tmpdatadir'
|
||||
Dir.rmdir 'tmpdatadir'
|
||||
|
||||
mkdir 'tmpdatadir/'
|
||||
assert_directory 'tmpdatadir'
|
||||
Dir.rmdir 'tmpdatadir'
|
||||
|
||||
mkdir 'tmp/mkdirdest'
|
||||
assert_directory 'tmp/mkdirdest'
|
||||
Dir.rmdir 'tmp/mkdirdest'
|
||||
|
@ -485,7 +499,8 @@ end
|
|||
|
||||
# pathname
|
||||
assert_nothing_raised {
|
||||
mkdir 'tmp/tmpdirtmp'
|
||||
mkdir Pathname.new('tmp/tmpdirtmp')
|
||||
mkdir [Pathname.new('tmp/tmpdirtmp2'), Pathname.new('tmp/tmpdirtmp3')]
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -518,7 +533,7 @@ end
|
|||
end
|
||||
rm_rf 'tmpdir'
|
||||
dirs.each do |d|
|
||||
mkdir_p File.expand_path(d)
|
||||
mkdir_p "#{Dir.pwd}/#{d}"
|
||||
assert_directory d
|
||||
end
|
||||
rm_rf 'tmpdir'
|
||||
|
|
Loading…
Reference in a new issue