executor.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. PackagesFromGroupAndDB(string, string) ([]IPackage, error)
  48. RefreshHandle() error
  49. SyncUpgrades(enableDowngrade bool) (
  50. map[string]SyncUpgrade, error)
  51. Repos() []string
  52. SatisfierFromDB(string, string) (IPackage, error)
  53. SyncPackage(string) IPackage
  54. SyncPackageFromDB(string, string) IPackage
  55. SyncPackages(...string) []IPackage
  56. SyncSatisfier(string) IPackage
  57. SyncSatisfierExists(string) bool
  58. SetLogger(logger *text.Logger)
  59. }