func Load()

in pkg/netrc/netrc.go [56:87]


func Load() (string, string, error) {
	netrcPath := os.Getenv("NETRC")
	if netrcPath == "" {
		h, err := os.UserHomeDir()
		if err != nil {
			return "", "", fmt.Errorf("cannot load .netrc file: %v", err)
		}
		netrcPath = h
	}

	netrcFileName := getNetrcFileName()
	if !strings.HasSuffix(netrcPath, netrcFileName) {
		netrcPath = filepath.Join(netrcPath, netrcFileName)
	}

	if _, err := os.Stat(filepath.Dir(netrcPath)); err != nil {
		if os.IsNotExist(err) {
			return "", "", fmt.Errorf("%s directory does not exist: %w", netrcFileName, err)
		}
		return "", "", fmt.Errorf("failed to load %s directory: %w", netrcFileName, err)
	}

	data, err := ioutil.ReadFile(netrcPath)
	if os.IsNotExist(err) {
		//  The .netrc file does not exist; create a new one
		return netrcPath, "", nil
	}
	if err != nil {
		return "", "", fmt.Errorf("cannot load %s file: %v", netrcFileName, err)
	}
	return netrcPath, string(data), nil
}