Under windows, paths passed to mkpath, mkdir_p and mkdirs need to be normalized. Otherwise ruby may decide to treat the drive component as a directory (i.e. create a directory named "C:"). This patch hooks in at a low level to work around this issue.
git-svn-id: https://svn.apache.org/repos/asf/buildr/trunk@1537858 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/buildr/repo Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/3766d17b Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/3766d17b Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/3766d17b Branch: refs/heads/master Commit: 3766d17bbdcb17a010c088f6db643d7e484b22b9 Parents: a4b12ac Author: Peter Donald <[email protected]> Authored: Fri Nov 1 09:22:54 2013 +0000 Committer: Peter Donald <[email protected]> Committed: Fri Nov 1 09:22:54 2013 +0000 ---------------------------------------------------------------------- lib/buildr/core/application.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/buildr/blob/3766d17b/lib/buildr/core/application.rb ---------------------------------------------------------------------- diff --git a/lib/buildr/core/application.rb b/lib/buildr/core/application.rb index e2f103a..ab4cfdb 100644 --- a/lib/buildr/core/application.rb +++ b/lib/buildr/core/application.rb @@ -117,7 +117,7 @@ module Buildr @rakefiles = DEFAULT_BUILDFILES.dup @top_level_tasks = [] @home_dir = File.expand_path('.buildr', ENV['HOME']) - mkpath @home_dir if !File.exist?(@home_dir) && File.writable?(ENV['HOME']) + mkpath Buildr::Util.normalize_path(@home_dir) if !File.exist?(@home_dir) && File.writable?(ENV['HOME']) @settings = Settings.new(self) @on_completion = [] @on_failure = [] @@ -668,6 +668,18 @@ module Rake #:nodoc end end +# Under windows, paths passed to mkpath, mkdir_p and mkdirs need to be normalized. +# Otherwise ruby may decide to treat the drive component as a directory (i.e. +# create a directory named "C:"). This patch hooks in at a low level to work around +# this issue. +module FileUtils + def fu_list(arg) #:nodoc: + [arg].flatten.map { |path| Buildr::Util.normalize_path(path) } + end + + private_Fmodule_function :fu_list +end + module FileUtils def fu_output_message(msg) #:nodoc: if Rake::FileUtilsExt::DEFAULT == RakeFileUtils.verbose_flag
