From ed1a776ae06b9b11ae7fe86c94f3a76dae969b41 Mon Sep 17 00:00:00 2001 From: aamine Date: Fri, 10 Sep 2004 06:56:20 +0000 Subject: * lib/fileutils.rb (mkdir_p): should pass mode argument to Dir.mkdir. [ruby-dev:24242] * test/fileutils/test_fileutils.rb: test it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ lib/fileutils.rb | 2 +- test/fileutils/test_fileutils.rb | 8 ++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1b58f5f99e..f7bf293c95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Fri Sep 10 15:55:59 2004 Minero Aoki + + * lib/fileutils.rb (mkdir_p): should pass mode argument to + Dir.mkdir. [ruby-dev:24242] + + * test/fileutils/test_fileutils.rb: test it. + Fri Sep 10 02:43:54 2004 Dave Thomas * lib/rdoc/generators/template/kilmer.rb: James Buck's diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 3558ad621b..08e21a07d2 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -180,7 +180,7 @@ module FileUtils list.map {|path| path.sub(%r, '') }.each do |path| # optimize for the most common case begin - Dir.mkdir path + Dir.mkdir path, mode next rescue SystemCallError next if File.directory?(path) diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb index bacbb51aa8..edafcd14e6 100644 --- a/test/fileutils/test_fileutils.rb +++ b/test/fileutils/test_fileutils.rb @@ -633,6 +633,14 @@ end assert_equal 0700, (File.stat('tmp/tmp/tmp').mode & 0777) if have_file_perm? rm_rf 'tmp/tmp' + mkdir_p 'tmp/tmp', :mode => 0 + assert_directory 'tmp/tmp' + assert_equal 0, (File.stat('tmp/tmp').mode & 0777) if have_file_perm? + # DO NOT USE rm_rf here. + # (rm(1) try to chdir to parent directory, it fails to remove directory.) + Dir.rmdir 'tmp/tmp' + Dir.rmdir 'tmp' + # pathname assert_nothing_raised { mkdir_p Pathname.new('tmp/tmp/tmp') -- cgit v1.2.3