executor.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. Repository string
  18. LocalVersion string
  19. RemoteVersion string
  20. Reason alpm.PkgReason
  21. }
  22. type Executor interface {
  23. AlpmArchitectures() ([]string, error)
  24. BiggestPackages() []IPackage
  25. Cleanup()
  26. IsCorrectVersionInstalled(string, string) bool
  27. LastBuildTime() time.Time
  28. LocalPackage(string) IPackage
  29. LocalPackages() []IPackage
  30. LocalSatisfierExists(string) bool
  31. PackageConflicts(IPackage) []Depend
  32. PackageDepends(IPackage) []Depend
  33. PackageGroups(IPackage) []string
  34. PackageOptionalDepends(IPackage) []Depend
  35. PackageProvides(IPackage) []Depend
  36. PackagesFromGroup(string) []IPackage
  37. RefreshHandle() error
  38. RepoUpgrades(bool) ([]Upgrade, error)
  39. Repos() []string
  40. SatisfierFromDB(string, string) IPackage
  41. SyncPackage(string) IPackage
  42. SyncPackages(...string) []IPackage
  43. SyncSatisfier(string) IPackage
  44. SyncSatisfierExists(string) bool
  45. }