12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package upgrade
- import (
- "context"
- "time"
- "github.com/leonelquinteros/gotext"
- "github.com/Jguer/yay/v12/pkg/db"
- "github.com/Jguer/yay/v12/pkg/query"
- "github.com/Jguer/yay/v12/pkg/text"
- "github.com/Jguer/yay/v12/pkg/vcs"
- )
- func UpDevel(
- ctx context.Context,
- remote map[string]db.IPackage,
- aurdata map[string]*query.Pkg,
- localCache vcs.Store,
- ) UpSlice {
- toRemove := make([]string, 0)
- toUpgrade := UpSlice{Up: make([]Upgrade, 0), Repos: []string{"devel"}}
- ctxTimeout, cancel := context.WithTimeout(ctx, 5*time.Second)
- defer cancel()
- for pkgName, pkg := range remote {
- if localCache.ToUpgrade(ctxTimeout, pkgName) {
- if _, ok := aurdata[pkgName]; !ok {
- text.Warnln(gotext.Get("ignoring package devel upgrade (no AUR info found):"), pkgName)
- continue
- }
- if pkg.ShouldIgnore() {
- printIgnoringPackage(pkg, "latest-commit")
- continue
- }
- toUpgrade.Up = append(toUpgrade.Up,
- Upgrade{
- Name: pkg.Name(),
- Base: pkg.Base(),
- Repository: "devel",
- LocalVersion: pkg.Version(),
- RemoteVersion: "latest-commit",
- Reason: pkg.Reason(),
- })
- }
- }
- localCache.RemovePackages(toRemove)
- return toUpgrade
- }
- func printIgnoringPackage(pkg db.IPackage, newPkgVersion string) {
- left, right := GetVersionDiff(pkg.Version(), newPkgVersion)
- text.Warnln(gotext.Get("%s: ignoring package upgrade (%s => %s)",
- text.Cyan(pkg.Name()),
- left, right,
- ))
- }
- // UpAUR gathers foreign packages and checks if they have new versions.
- // Output: Upgrade type package list.
- func UpAUR(remote map[string]db.IPackage, aurdata map[string]*query.Pkg, timeUpdate, enableDowngrade bool) UpSlice {
- toUpgrade := UpSlice{Up: make([]Upgrade, 0), Repos: []string{"aur"}}
- for name, pkg := range remote {
- aurPkg, ok := aurdata[name]
- if !ok {
- continue
- }
- if (timeUpdate && (int64(aurPkg.LastModified) > pkg.BuildDate().Unix())) ||
- (db.VerCmp(pkg.Version(), aurPkg.Version) < 0) || enableDowngrade {
- if pkg.ShouldIgnore() {
- printIgnoringPackage(pkg, aurPkg.Version)
- } else {
- toUpgrade.Up = append(toUpgrade.Up,
- Upgrade{
- Name: aurPkg.Name,
- Base: aurPkg.PackageBase,
- Repository: "aur",
- LocalVersion: pkg.Version(),
- RemoteVersion: aurPkg.Version,
- Reason: pkg.Reason(),
- })
- }
- }
- }
- return toUpgrade
- }
|