high_level.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. text.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. }