diff options
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/util.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index ca20ae0..8e642e1 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -85,6 +85,32 @@ def native_path (pathname): # native_path () +def change_root (new_root, pathname): + + """Return 'pathname' with 'new_root' prepended. If 'pathname' is + relative, this is equivalent to "os.path.join(new_root,pathname)". + Otherwise, it requires making 'pathname' relative and then joining the + two, which is tricky on DOS/Windows and Mac OS.""" + + if not abspath (pathname): + return os.path.join (new_root, pathname) + + elif os.name == 'posix': + return os.path.join (new_root, pathname[1:]) + + elif os.name == 'nt': + (root_drive, root_path) = os.path.splitdrive (new_root) + (drive, path) = os.path.splitdrive (pathname) + raise RuntimeError, "I give up -- not sure how to do this on Windows" + + elif os.name == 'mac': + raise RuntimeError, "no clue how to do this on Mac OS" + + else: + raise DistutilsPlatformError, \ + "nothing known about platform '%s'" % os.name + + def _check_environ (): """Ensure that 'os.environ' has all the environment variables we guarantee that users can use in config files, command-line |