in packages/packages_linux.go [96:163]
func GetInstalledPackages(ctx context.Context) (*Packages, error) {
pkgs := &Packages{}
var errs []string
if RPMQueryExists {
rpm, err := InstalledRPMPackages(ctx)
if err != nil {
msg := fmt.Sprintf("error listing installed rpm packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.Rpm = rpm
}
}
if ZypperExists {
zypperPatches, err := ZypperInstalledPatches(ctx)
if err != nil {
msg := fmt.Sprintf("error getting zypper installed patches: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.ZypperPatches = zypperPatches
}
}
if DpkgQueryExists {
deb, err := InstalledDebPackages(ctx)
if err != nil {
msg := fmt.Sprintf("error listing installed deb packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.Deb = deb
}
}
if COSPkgInfoExists {
cos, err := InstalledCOSPackages()
if err != nil {
msg := fmt.Sprintf("error listing installed COS packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
errs = append(errs, msg)
} else {
pkgs.COS = cos
}
}
if GemExists {
gem, err := InstalledGemPackages(ctx)
if err != nil {
msg := fmt.Sprintf("error listing installed gem packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
} else {
pkgs.Gem = gem
}
}
if PipExists {
pip, err := InstalledPipPackages(ctx)
if err != nil {
msg := fmt.Sprintf("error listing installed pip packages: %v", err)
clog.Debugf(ctx, "Error: %s", msg)
} else {
pkgs.Pip = pip
}
}
var err error
if len(errs) != 0 {
err = errors.New(strings.Join(errs, "\n"))
}
return pkgs, err
}