From f9ab19a0b015e7916c1fa15aa08c004d59a1ba83 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: http://svn.ruby-lang.org/repos/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 1b58f5f99..f7bf293c9 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 3558ad621..08e21a07d 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 bacbb51aa..edafcd14e 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