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"
 | 
					msgid "ERROR"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: list.go:40
 | 
					#: list.go:41
 | 
				
			||||||
msgid "List ALR repo packages"
 | 
					msgid "List ALR repo packages"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: list.go:91
 | 
					#: list.go:92
 | 
				
			||||||
msgid "Error listing installed packages"
 | 
					msgid "Error listing installed packages"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -335,11 +335,11 @@ msgstr "%s %s загружается — %s/с\n"
 | 
				
			|||||||
msgid "ERROR"
 | 
					msgid "ERROR"
 | 
				
			||||||
msgstr "ОШИБКА"
 | 
					msgstr "ОШИБКА"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: list.go:40
 | 
					#: list.go:41
 | 
				
			||||||
msgid "List ALR repo packages"
 | 
					msgid "List ALR repo packages"
 | 
				
			||||||
msgstr "Список пакетов репозитория ALR"
 | 
					msgstr "Список пакетов репозитория ALR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: list.go:91
 | 
					#: list.go:92
 | 
				
			||||||
msgid "Error listing installed packages"
 | 
					msgid "Error listing installed packages"
 | 
				
			||||||
msgstr "Ошибка при составлении списка установленных пакетов"
 | 
					msgstr "Ошибка при составлении списка установленных пакетов"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								list.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								list.go
									
									
									
									
									
								
							@@ -30,6 +30,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
 | 
						"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
 | 
				
			||||||
	database "gitea.plemya-x.ru/Plemya-x/ALR/internal/db"
 | 
						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/manager"
 | 
				
			||||||
	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/repos"
 | 
						"gitea.plemya-x.ru/Plemya-x/ALR/pkg/repos"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -78,7 +79,7 @@ func ListCmd() *cli.Command {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			defer result.Close()
 | 
								defer result.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var installed map[string]string
 | 
								installedAlrPackages := map[string]string{}
 | 
				
			||||||
			if c.Bool("installed") {
 | 
								if c.Bool("installed") {
 | 
				
			||||||
				mgr := manager.Detect()
 | 
									mgr := manager.Detect()
 | 
				
			||||||
				if mgr == nil {
 | 
									if mgr == nil {
 | 
				
			||||||
@@ -86,11 +87,20 @@ func ListCmd() *cli.Command {
 | 
				
			|||||||
					os.Exit(1)
 | 
										os.Exit(1)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				installed, err = mgr.ListInstalled(&manager.Opts{AsRoot: false})
 | 
									installed, err := mgr.ListInstalled(&manager.Opts{AsRoot: false})
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					slog.Error(gotext.Get("Error listing installed packages"), "err", err)
 | 
										slog.Error(gotext.Get("Error listing installed packages"), "err", err)
 | 
				
			||||||
					os.Exit(1)
 | 
										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() {
 | 
								for result.Next() {
 | 
				
			||||||
@@ -106,7 +116,7 @@ func ListCmd() *cli.Command {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				version := pkg.Version
 | 
									version := pkg.Version
 | 
				
			||||||
				if c.Bool("installed") {
 | 
									if c.Bool("installed") {
 | 
				
			||||||
					instVersion, ok := installed[pkg.Name]
 | 
										instVersion, ok := installedAlrPackages[fmt.Sprintf("%s/%s", pkg.Repository, pkg.Name)]
 | 
				
			||||||
					if !ok {
 | 
										if !ok {
 | 
				
			||||||
						continue
 | 
											continue
 | 
				
			||||||
					} else {
 | 
										} else {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,7 @@ import (
 | 
				
			|||||||
	"io"
 | 
						"io"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"regexp"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
	"slices"
 | 
						"slices"
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
@@ -170,6 +171,8 @@ func buildContents(vars *types.BuildVars, dirs types.Directories, preferedConten
 | 
				
			|||||||
	return contents, nil
 | 
						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 {
 | 
					func getBasePkgInfo(vars *types.BuildVars, info *distro.OSRelease, opts *types.BuildOpts) *nfpm.Info {
 | 
				
			||||||
	return &nfpm.Info{
 | 
						return &nfpm.Info{
 | 
				
			||||||
		Name:    fmt.Sprintf("%s+alr-%s", vars.Name, opts.Repository),
 | 
							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"
 | 
						"github.com/urfave/cli/v2"
 | 
				
			||||||
	"go.elara.ws/vercmp"
 | 
						"go.elara.ws/vercmp"
 | 
				
			||||||
	"golang.org/x/exp/maps"
 | 
						"golang.org/x/exp/maps"
 | 
				
			||||||
	"golang.org/x/exp/slices"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
 | 
						"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
 | 
				
			||||||
	database "gitea.plemya-x.ru/Plemya-x/ALR/internal/db"
 | 
						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/distro"
 | 
				
			||||||
	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/manager"
 | 
						"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/repos"
 | 
				
			||||||
 | 
						"gitea.plemya-x.ru/Plemya-x/ALR/pkg/search"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func UpgradeCmd() *cli.Command {
 | 
					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 {
 | 
								if err != nil {
 | 
				
			||||||
				slog.Error(gotext.Get("Error checking for updates"), "err", err)
 | 
									slog.Error(gotext.Get("Error checking for updates"), "err", err)
 | 
				
			||||||
				os.Exit(1)
 | 
									os.Exit(1)
 | 
				
			||||||
@@ -121,6 +121,7 @@ func checkForUpdates(
 | 
				
			|||||||
	ctx context.Context,
 | 
						ctx context.Context,
 | 
				
			||||||
	mgr manager.Manager,
 | 
						mgr manager.Manager,
 | 
				
			||||||
	cfg *config.ALRConfig,
 | 
						cfg *config.ALRConfig,
 | 
				
			||||||
 | 
						db *database.Database,
 | 
				
			||||||
	rs *repos.Repos,
 | 
						rs *repos.Repos,
 | 
				
			||||||
	info *distro.OSRelease,
 | 
						info *distro.OSRelease,
 | 
				
			||||||
) ([]database.Package, error) {
 | 
					) ([]database.Package, error) {
 | 
				
			||||||
@@ -130,25 +131,27 @@ func checkForUpdates(
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pkgNames := maps.Keys(installed)
 | 
						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 {
 | 
								if err != nil {
 | 
				
			||||||
				return nil, err
 | 
									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]
 | 
								pkg := pkgs[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			repoVer := pkg.Version
 | 
								repoVer := pkg.Version
 | 
				
			||||||
@@ -167,5 +170,8 @@ func checkForUpdates(
 | 
				
			|||||||
				out = append(out, pkg)
 | 
									out = append(out, pkg)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return out, nil
 | 
						return out, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user