executor.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 SyncUpgrade struct {
  24. Package alpm.IPackage
  25. LocalVersion string
  26. Reason alpm.PkgReason
  27. }
  28. type Executor interface {
  29. AlpmArchitectures() ([]string, error)
  30. BiggestPackages() []IPackage
  31. Cleanup()
  32. InstalledRemotePackageNames() []string
  33. InstalledRemotePackages() map[string]IPackage
  34. InstalledSyncPackageNames() []string
  35. IsCorrectVersionInstalled(string, string) bool
  36. LastBuildTime() time.Time
  37. LocalPackage(string) IPackage
  38. LocalPackages() []IPackage
  39. LocalSatisfierExists(string) bool
  40. PackageConflicts(IPackage) []Depend
  41. PackageDepends(IPackage) []Depend
  42. PackageGroups(IPackage) []string
  43. PackageOptionalDepends(IPackage) []Depend
  44. PackageProvides(IPackage) []Depend
  45. PackagesFromGroup(string) []IPackage
  46. RefreshHandle() error
  47. SyncUpgrades(enableDowngrade bool) (
  48. map[string]SyncUpgrade, error)
  49. Repos() []string
  50. SatisfierFromDB(string, string) IPackage
  51. SyncPackage(string) IPackage
  52. SyncPackages(...string) []IPackage
  53. SyncSatisfier(string) IPackage
  54. SyncSatisfierExists(string) bool
  55. }