forked from toolshed/abra
		
	
		
			
				
	
	
		
			21 lines
		
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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)
 | |
| }
 |