| 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) | |
| } |