executor.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. PackageConflicts(IPackage) []Depend
  43. PackageDepends(IPackage) []Depend
  44. PackageGroups(IPackage) []string
  45. PackageOptionalDepends(IPackage) []Depend
  46. PackageProvides(IPackage) []Depend
  47. PackagesFromGroup(string) []IPackage
  48. RefreshHandle() error
  49. SyncUpgrades(enableDowngrade bool) (
  50. map[string]SyncUpgrade, error)
  51. Repos() []string
  52. SatisfierFromDB(string, string) IPackage
  53. SyncPackage(string) IPackage
  54. SyncPackages(...string) []IPackage
  55. SyncSatisfier(string) IPackage
  56. SyncSatisfierExists(string) bool
  57. SetLogger(logger *text.Logger)
  58. }