high_level.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package ialpm
  2. import (
  3. alpm "github.com/Jguer/go-alpm/v2"
  4. "github.com/Jguer/yay/v12/pkg/text"
  5. )
  6. // GetPackageNamesBySource returns package names with and without correspondence in SyncDBS respectively.
  7. func (ae *AlpmExecutor) getPackageNamesBySource() {
  8. for _, localpkg := range ae.LocalPackages() {
  9. pkgName := localpkg.Name()
  10. if ae.SyncPackage(pkgName) != nil {
  11. ae.installedSyncPkgNames = append(ae.installedSyncPkgNames, pkgName)
  12. } else {
  13. ae.installedRemotePkgNames = append(ae.installedRemotePkgNames, pkgName)
  14. ae.installedRemotePkgMap[pkgName] = localpkg
  15. }
  16. }
  17. ae.log.Debugln("populating db executor package caches.",
  18. "sync_len", len(ae.installedSyncPkgNames), "remote_len", len(ae.installedRemotePkgNames))
  19. }
  20. func (ae *AlpmExecutor) InstalledRemotePackages() map[string]alpm.IPackage {
  21. if ae.installedRemotePkgMap == nil {
  22. ae.getPackageNamesBySource()
  23. }
  24. return ae.installedRemotePkgMap
  25. }
  26. func (ae *AlpmExecutor) InstalledRemotePackageNames() []string {
  27. if ae.installedRemotePkgNames == nil {
  28. ae.getPackageNamesBySource()
  29. }
  30. return ae.installedRemotePkgNames
  31. }
  32. func (ae *AlpmExecutor) InstalledSyncPackageNames() []string {
  33. if ae.installedSyncPkgNames == nil {
  34. ae.getPackageNamesBySource()
  35. }
  36. return ae.installedSyncPkgNames
  37. }
  38. func (ae *AlpmExecutor) SetLogger(logger *text.Logger) {
  39. ae.log = logger
  40. }