executor.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package db
  2. import (
  3. "time"
  4. alpm "github.com/Jguer/go-alpm/v2"
  5. )
  6. type (
  7. IPackage = alpm.IPackage
  8. Depend = alpm.Depend
  9. )
  10. // VerCmp performs version comparison according to Pacman conventions. Return
  11. // value is <0 if and only if v1 is older than v2.
  12. func VerCmp(v1, v2 string) int {
  13. return alpm.VerCmp(v1, v2)
  14. }
  15. type Upgrade struct {
  16. Name string
  17. Base string
  18. Repository string
  19. LocalVersion string
  20. RemoteVersion string
  21. Reason alpm.PkgReason
  22. }
  23. type Executor interface {
  24. AlpmArchitectures() ([]string, error)
  25. BiggestPackages() []IPackage
  26. Cleanup()
  27. IsCorrectVersionInstalled(string, string) bool
  28. LastBuildTime() time.Time
  29. LocalPackage(string) IPackage
  30. LocalPackages() []IPackage
  31. LocalSatisfierExists(string) bool
  32. PackageConflicts(IPackage) []Depend
  33. PackageDepends(IPackage) []Depend
  34. PackageGroups(IPackage) []string
  35. PackageOptionalDepends(IPackage) []Depend
  36. PackageProvides(IPackage) []Depend
  37. PackagesFromGroup(string) []IPackage
  38. RefreshHandle() error
  39. RepoUpgrades(bool) ([]Upgrade, error)
  40. Repos() []string
  41. SatisfierFromDB(string, string) IPackage
  42. SyncPackage(string) IPackage
  43. SyncPackages(...string) []IPackage
  44. SyncSatisfier(string) IPackage
  45. SyncSatisfierExists(string) bool
  46. }