func GetInstallationIdFromPWSH()

in internal/cfgfile/installation_id.go [36:59]


func GetInstallationIdFromPWSH() (string, error) {
	home, err := os.UserHomeDir()
	if err != nil {
		return "", fmt.Errorf("retrieving user's HOME dir")
	}
	path := filepath.Join(home, ".azure", "AzureRmContextSettings.json")
	// #nosec G304
	b, err := os.ReadFile(path)
	if err != nil {
		return "", fmt.Errorf("reading %s: %v", path, err)
	}
	var f struct {
		Settings struct {
			InstallationId string `json:"InstallationId"`
		} `json:"Settings"`
	}
	if err := json.Unmarshal(b, &f); err != nil {
		return "", fmt.Errorf("unmarshalling the file: %v", err)
	}
	if f.Settings.InstallationId == "" {
		return "", fmt.Errorf("no installation id found")
	}
	return f.Settings.InstallationId, nil
}