forked from Plemya-x/ALR
		
	fix: fix list and upgrade commands with new naming
This commit is contained in:
		| @@ -323,11 +323,11 @@ msgstr "" | ||||
| msgid "ERROR" | ||||
| msgstr "" | ||||
|  | ||||
| #: list.go:40 | ||||
| #: list.go:41 | ||||
| msgid "List ALR repo packages" | ||||
| msgstr "" | ||||
|  | ||||
| #: list.go:91 | ||||
| #: list.go:92 | ||||
| msgid "Error listing installed packages" | ||||
| msgstr "" | ||||
|  | ||||
|   | ||||
| @@ -335,11 +335,11 @@ msgstr "%s %s загружается — %s/с\n" | ||||
| msgid "ERROR" | ||||
| msgstr "ОШИБКА" | ||||
|  | ||||
| #: list.go:40 | ||||
| #: list.go:41 | ||||
| msgid "List ALR repo packages" | ||||
| msgstr "Список пакетов репозитория ALR" | ||||
|  | ||||
| #: list.go:91 | ||||
| #: list.go:92 | ||||
| msgid "Error listing installed packages" | ||||
| msgstr "Ошибка при составлении списка установленных пакетов" | ||||
|  | ||||
|   | ||||
							
								
								
									
										16
									
								
								list.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								list.go
									
									
									
									
									
								
							| @@ -30,6 +30,7 @@ import ( | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config" | ||||
| 	database "gitea.plemya-x.ru/Plemya-x/ALR/internal/db" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/build" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/manager" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/repos" | ||||
| ) | ||||
| @@ -78,7 +79,7 @@ func ListCmd() *cli.Command { | ||||
| 			} | ||||
| 			defer result.Close() | ||||
|  | ||||
| 			var installed map[string]string | ||||
| 			installedAlrPackages := map[string]string{} | ||||
| 			if c.Bool("installed") { | ||||
| 				mgr := manager.Detect() | ||||
| 				if mgr == nil { | ||||
| @@ -86,11 +87,20 @@ func ListCmd() *cli.Command { | ||||
| 					os.Exit(1) | ||||
| 				} | ||||
|  | ||||
| 				installed, err = mgr.ListInstalled(&manager.Opts{AsRoot: false}) | ||||
| 				installed, err := mgr.ListInstalled(&manager.Opts{AsRoot: false}) | ||||
| 				if err != nil { | ||||
| 					slog.Error(gotext.Get("Error listing installed packages"), "err", err) | ||||
| 					os.Exit(1) | ||||
| 				} | ||||
|  | ||||
| 				for pkgName, version := range installed { | ||||
| 					matches := build.RegexpALRPackageName.FindStringSubmatch(pkgName) | ||||
| 					if matches != nil { | ||||
| 						packageName := matches[build.RegexpALRPackageName.SubexpIndex("package")] | ||||
| 						repoName := matches[build.RegexpALRPackageName.SubexpIndex("repo")] | ||||
| 						installedAlrPackages[fmt.Sprintf("%s/%s", repoName, packageName)] = version | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			for result.Next() { | ||||
| @@ -106,7 +116,7 @@ func ListCmd() *cli.Command { | ||||
|  | ||||
| 				version := pkg.Version | ||||
| 				if c.Bool("installed") { | ||||
| 					instVersion, ok := installed[pkg.Name] | ||||
| 					instVersion, ok := installedAlrPackages[fmt.Sprintf("%s/%s", pkg.Repository, pkg.Name)] | ||||
| 					if !ok { | ||||
| 						continue | ||||
| 					} else { | ||||
|   | ||||
| @@ -21,6 +21,7 @@ import ( | ||||
| 	"io" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 	"regexp" | ||||
| 	"runtime" | ||||
| 	"slices" | ||||
| 	"strconv" | ||||
| @@ -170,6 +171,8 @@ func buildContents(vars *types.BuildVars, dirs types.Directories, preferedConten | ||||
| 	return contents, nil | ||||
| } | ||||
|  | ||||
| var RegexpALRPackageName = regexp.MustCompile(`^(?P<package>[^+]+)\+alr-(?P<repo>.+)$`) | ||||
|  | ||||
| func getBasePkgInfo(vars *types.BuildVars, info *distro.OSRelease, opts *types.BuildOpts) *nfpm.Info { | ||||
| 	return &nfpm.Info{ | ||||
| 		Name:    fmt.Sprintf("%s+alr-%s", vars.Name, opts.Repository), | ||||
|   | ||||
							
								
								
									
										40
									
								
								upgrade.go
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								upgrade.go
									
									
									
									
									
								
							| @@ -29,7 +29,6 @@ import ( | ||||
| 	"github.com/urfave/cli/v2" | ||||
| 	"go.elara.ws/vercmp" | ||||
| 	"golang.org/x/exp/maps" | ||||
| 	"golang.org/x/exp/slices" | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config" | ||||
| 	database "gitea.plemya-x.ru/Plemya-x/ALR/internal/db" | ||||
| @@ -39,6 +38,7 @@ import ( | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/distro" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/manager" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/repos" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/search" | ||||
| ) | ||||
|  | ||||
| func UpgradeCmd() *cli.Command { | ||||
| @@ -85,7 +85,7 @@ func UpgradeCmd() *cli.Command { | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			updates, err := checkForUpdates(ctx, mgr, cfg, rs, info) | ||||
| 			updates, err := checkForUpdates(ctx, mgr, cfg, db, rs, info) | ||||
| 			if err != nil { | ||||
| 				slog.Error(gotext.Get("Error checking for updates"), "err", err) | ||||
| 				os.Exit(1) | ||||
| @@ -121,6 +121,7 @@ func checkForUpdates( | ||||
| 	ctx context.Context, | ||||
| 	mgr manager.Manager, | ||||
| 	cfg *config.ALRConfig, | ||||
| 	db *database.Database, | ||||
| 	rs *repos.Repos, | ||||
| 	info *distro.OSRelease, | ||||
| ) ([]database.Package, error) { | ||||
| @@ -130,25 +131,27 @@ func checkForUpdates( | ||||
| 	} | ||||
|  | ||||
| 	pkgNames := maps.Keys(installed) | ||||
| 	found, _, err := rs.FindPkgs(ctx, pkgNames) | ||||
|  | ||||
| 	s := search.New(db) | ||||
|  | ||||
| 	var out []database.Package | ||||
| 	for _, pkgName := range pkgNames { | ||||
| 		matches := build.RegexpALRPackageName.FindStringSubmatch(pkgName) | ||||
| 		if matches != nil { | ||||
| 			packageName := matches[build.RegexpALRPackageName.SubexpIndex("package")] | ||||
| 			repoName := matches[build.RegexpALRPackageName.SubexpIndex("repo")] | ||||
|  | ||||
| 			pkgs, err := s.Search( | ||||
| 				ctx, | ||||
| 				search.NewSearchOptions(). | ||||
| 					WithName(packageName). | ||||
| 					WithRepository(repoName). | ||||
| 					Build(), | ||||
| 			) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
|  | ||||
| 	var out []database.Package | ||||
| 	for pkgName, pkgs := range found { | ||||
| 		if slices.Contains(cfg.IgnorePkgUpdates(ctx), pkgName) { | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		if len(pkgs) > 1 { | ||||
| 			// Puts the element with the highest version first | ||||
| 			slices.SortFunc(pkgs, func(a, b database.Package) int { | ||||
| 				return vercmp.Compare(a.Version, b.Version) | ||||
| 			}) | ||||
| 		} | ||||
|  | ||||
| 		// First element is the package we want to install | ||||
| 			pkg := pkgs[0] | ||||
|  | ||||
| 			repoVer := pkg.Version | ||||
| @@ -167,5 +170,8 @@ func checkForUpdates( | ||||
| 				out = append(out, pkg) | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	return out, nil | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user