executor.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package db
  2. import (
  3. "time"
  4. alpm "github.com/Jguer/go-alpm/v2"
  5. "github.com/Jguer/yay/v12/pkg/text"
  6. )
  7. type (
  8. IPackage = alpm.IPackage
  9. Depend = alpm.Depend
  10. )
  11. // VerCmp performs version comparison according to Pacman conventions. Return
  12. // value is <0 if and only if v1 is older than v2.
  13. func VerCmp(v1, v2 string) int {
  14. return alpm.VerCmp(v1, v2)
  15. }
  16. type Upgrade struct {
  17. Name string
  18. Base string
  19. Repository string
  20. LocalVersion string
  21. RemoteVersion string
  22. Reason alpm.PkgReason
  23. Extra string // Extra information to be displayed
  24. }
  25. type SyncUpgrade struct {
  26. Package alpm.IPackage
  27. LocalVersion string
  28. Reason alpm.PkgReason
  29. }
  30. type Executor interface {
  31. AlpmArchitectures() ([]string, error)
  32. BiggestPackages() []IPackage
  33. Cleanup()
  34. InstalledRemotePackageNames() []string
  35. InstalledRemotePackages() map[string]IPackage
  36. InstalledSyncPackageNames() []string
  37. IsCorrectVersionInstalled(string, string) bool
  38. LastBuildTime() time.Time
  39. LocalPackage(string) IPackage
  40. LocalPackages() []IPackage
  41. LocalSatisfierExists(string) bool
  42. PackageDepends(IPackage) []Depend
  43. PackageGroups(IPackage) []string
  44. PackageOptionalDepends(IPackage) []Depend
  45. PackageProvides(IPackage) []Depend
  46. PackagesFromGroup(string) []IPackage
  47. RefreshHandle() error
  48. SyncUpgrades(enableDowngrade bool) (
  49. map[string]SyncUpgrade, error)
  50. Repos() []string
  51. SatisfierFromDB(string, string) IPackage
  52. SyncPackage(string) IPackage
  53. SyncPackages(...string) []IPackage
  54. SyncSatisfier(string) IPackage
  55. SyncSatisfierExists(string) bool
  56. SetLogger(logger *text.Logger)
  57. }