dotcloud/docker

View on GitHub
pkg/archive/path.go

Summary

Maintainability
A
0 mins
Test Coverage
package archive

// CheckSystemDriveAndRemoveDriveLetter verifies that a path, if it includes a drive letter,
// is the system drive.
// On Linux: this is a no-op.
// On Windows: this does the following>
// CheckSystemDriveAndRemoveDriveLetter verifies and manipulates a Windows path.
// This is used, for example, when validating a user provided path in docker cp.
// If a drive letter is supplied, it must be the system drive. The drive letter
// is always removed. Also, it translates it to OS semantics (IOW / to \). We
// need the path in this syntax so that it can ultimately be concatenated with
// a Windows long-path which doesn't support drive-letters. Examples:
// C:            --> Fail
// C:\            --> \
// a            --> a
// /a            --> \a
// d:\            --> Fail
func CheckSystemDriveAndRemoveDriveLetter(path string) (string, error) {
    return checkSystemDriveAndRemoveDriveLetter(path)
}