Этот коммит содержится в:
		
							родитель
							
								
									0cabd4de69
								
							
						
					
					
						коммит
						774c86e21b
					
				
					 1 изменённых файлов: 21 добавлений и 2 удалений
				
			
		|  | @ -142,10 +142,11 @@ func getHomeDir() string { | ||||||
| // getGoroot returns an appropriate GOROOT from various sources. If it can't be | // getGoroot returns an appropriate GOROOT from various sources. If it can't be | ||||||
| // found, it returns an empty string. | // found, it returns an empty string. | ||||||
| func getGoroot() string { | func getGoroot() string { | ||||||
|  | 	// An explicitly set GOROOT always has preference. | ||||||
| 	goroot := os.Getenv("GOROOT") | 	goroot := os.Getenv("GOROOT") | ||||||
| 	if goroot != "" { | 	if goroot != "" { | ||||||
| 		// An explicitly set GOROOT always has preference. | 		// Convert to the standard GOROOT being referenced, if it's a TinyGo cache. | ||||||
| 		return goroot | 		return getStandardGoroot(goroot) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Check for the location of the 'go' binary and base GOROOT on that. | 	// Check for the location of the 'go' binary and base GOROOT on that. | ||||||
|  | @ -195,3 +196,21 @@ func isGoroot(goroot string) bool { | ||||||
| 	_, err := os.Stat(filepath.Join(goroot, "src", "runtime", "internal", "sys", "zversion.go")) | 	_, err := os.Stat(filepath.Join(goroot, "src", "runtime", "internal", "sys", "zversion.go")) | ||||||
| 	return err == nil | 	return err == nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // getStandardGoroot returns the physical path to a real, standard Go GOROOT | ||||||
|  | // implied by the given path. | ||||||
|  | // If the given path appears to be a TinyGo cached GOROOT, it returns the path | ||||||
|  | // referenced by symlinks contained in the cache. Otherwise, it returns the | ||||||
|  | // given path as-is. | ||||||
|  | func getStandardGoroot(path string) string { | ||||||
|  | 	// Check if the "bin" subdirectory of our given GOROOT is a symlink, and then | ||||||
|  | 	// return the _parent_ directory of its destination. | ||||||
|  | 	if dest, err := os.Readlink(filepath.Join(path, "bin")); nil == err { | ||||||
|  | 		// Clean the destination to remove any trailing slashes, so that | ||||||
|  | 		// filepath.Dir will always return the parent. | ||||||
|  | 		//   (because both "/foo" and "/foo/" are valid symlink destinations, | ||||||
|  | 		//   but filepath.Dir would return "/" and "/foo", respectively) | ||||||
|  | 		return filepath.Dir(filepath.Clean(dest)) | ||||||
|  | 	} | ||||||
|  | 	return path | ||||||
|  | } | ||||||
|  |  | ||||||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 ardnew
						ardnew