in packages/packages_windows.go [97:143]
func GetInstalledPackages(ctx context.Context) (*Packages, error) {
var pkgs Packages
var errs []string
if util.Exists(googet) {
if googet, err := InstalledGooGetPackages(ctx); err != nil {
msg := fmt.Sprintf("error listing installed googet packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.GooGet = googet
}
}
clog.Debugf(ctx, "Searching for installed WUA updates.")
if wua, err := wuaUpdates(ctx, "IsInstalled=1"); err != nil {
msg := fmt.Sprintf("error listing installed Windows updates: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.WUA = wua
}
if qfe, err := QuickFixEngineering(ctx); err != nil {
msg := fmt.Sprintf("error listing installed QuickFixEngineering updates: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.QFE = qfe
}
clog.Debugf(ctx, "Listing Windows Applications.")
if windowsApplications, err := GetWindowsApplications(ctx); err != nil {
msg := fmt.Sprintf("error listing installed Windows Applications: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.WindowsApplication = windowsApplications
}
var err error
if len(errs) != 0 {
err = errors.New(strings.Join(errs, "\n"))
}
return &pkgs, err
}