executor.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. InstalledRemotePackageNames() []string
  28. InstalledRemotePackages() map[string]IPackage
  29. InstalledSyncPackageNames() []string
  30. IsCorrectVersionInstalled(string, string) bool
  31. LastBuildTime() time.Time
  32. LocalPackage(string) IPackage
  33. LocalPackages() []IPackage
  34. LocalSatisfierExists(string) bool
  35. PackageConflicts(IPackage) []Depend
  36. PackageDepends(IPackage) []Depend
  37. PackageGroups(IPackage) []string
  38. PackageOptionalDepends(IPackage) []Depend
  39. PackageProvides(IPackage) []Depend
  40. PackagesFromGroup(string) []IPackage
  41. RefreshHandle() error
  42. RepoUpgrades(bool) ([]Upgrade, error)
  43. Repos() []string
  44. SatisfierFromDB(string, string) IPackage
  45. SyncPackage(string) IPackage
  46. SyncPackages(...string) []IPackage
  47. SyncSatisfier(string) IPackage
  48. SyncSatisfierExists(string) bool
  49. }