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