HomePhorge

Fix issue with forward and backslashes in Windows paths
ad29bf6114f6Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

Fix issue with forward and backslashes in Windows paths

The environment validates its modulepath and manifestdir settings, but
it uses Dir.getwd to convert a relative path into an absolute path. The
problem is that on Windows, Dir.getwd returns a path with backslashes.
(Interestingly this only happens when puppet is loaded, not in irb for
example.) And since we do not yet support backslashes in Windows paths
or UNC paths, the directory is not included in the environment.

For the time being, I am using File.expand_path to normalize the path.
It has the side-effect of converting backslashes to forward slashes.
This is sufficient to work around backslashes in Dir.getwd. In the near
future, I will be refactoring how paths are split, validated, tested,
etc, and I have a REMIND in place to fix the environment.

But as a result of this change it exposed a bug in our rdoc parser
dealing with the finding the root of a path. The parser assumed that the
root was '/', but caused an infinite loop when passed a Windows path.

I added a test for this case, which is only run on Windows, because on
Unix File.dirname("C:/") == '.'.

After all of that, I had to disable one of the rdoc spec tests, because
it attempted to reproduce a specific bug, which caused rdoc to try to
create a directory of the form: C:/.../files/C:/.... Of course, this
fails because ':' is not a valid filename character on Windows.

Paired-with: Nick Lewis <nick@puppetlabs.com>
Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
(cherry picked from commit 9279d0954eb20d75e18a666fd572b5492e157608)

Details

Provenance
Josh Cooper <josh@puppetlabs.com>Authored on
Jacob Helwig <jacob@puppetlabs.com>Committed on Aug 19 2011, 10:52 PM
vanmeeuwenPushed on Jun 2 2015, 2:22 PM
Parents
rPUeaa7d92f4017: Disable spec tests for unsupported functionality on Windows
Branches
Unknown
Tags
Unknown

Event Timeline

Jacob Helwig <jacob@puppetlabs.com> committed rPUad29bf6114f6: Fix issue with forward and backslashes in Windows paths (authored by Josh Cooper <josh@puppetlabs.com>).Aug 19 2011, 10:52 PM