Добавление статистики
Исправление работы с мультипакетами
This commit is contained in:
@@ -32,6 +32,7 @@ import (
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/manager"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/stats"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/distro"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/types"
|
||||
@@ -401,9 +402,19 @@ func (b *Builder) BuildPackage(
|
||||
|
||||
// We filter so as not to re-build what has already been built at the `installBuildDeps` stage.
|
||||
var filteredDepends []string
|
||||
|
||||
// Создаем набор подпакетов текущего мультипакета для исключения циклических зависимостей
|
||||
currentPackageNames := make(map[string]struct{})
|
||||
for _, pkg := range input.packages {
|
||||
currentPackageNames[pkg] = struct{}{}
|
||||
}
|
||||
|
||||
for _, d := range depends {
|
||||
if _, found := depNames[d]; !found {
|
||||
filteredDepends = append(filteredDepends, d)
|
||||
// Исключаем зависимости, которые являются подпакетами текущего мультипакета
|
||||
if _, isCurrentPackage := currentPackageNames[d]; !isCurrentPackage {
|
||||
filteredDepends = append(filteredDepends, d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -528,6 +539,13 @@ func (b *Builder) InstallALRPackages(
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Отслеживание установки ALR пакетов
|
||||
for _, dep := range res {
|
||||
if stats.ShouldTrackPackage(dep.Name) {
|
||||
stats.TrackInstallation(ctx, dep.Name, "upgrade")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -552,11 +570,13 @@ func (b *Builder) BuildALRDeps(
|
||||
repoDeps = notFound
|
||||
|
||||
// Если для некоторых пакетов есть несколько опций, упрощаем их все в один срез
|
||||
pkgs := cliutils.FlattenPkgs(
|
||||
// Для зависимостей указываем isDependency = true
|
||||
pkgs := cliutils.FlattenPkgsWithContext(
|
||||
ctx,
|
||||
found,
|
||||
"install",
|
||||
input.BuildOpts().Interactive,
|
||||
true,
|
||||
)
|
||||
type item struct {
|
||||
pkg *alrsh.Package
|
||||
@@ -691,6 +711,13 @@ func (i *Builder) InstallPkgs(
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Отслеживание установки локальных пакетов
|
||||
for _, dep := range builtDeps {
|
||||
if stats.ShouldTrackPackage(dep.Name) {
|
||||
stats.TrackInstallation(ctx, dep.Name, "install")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(repoDeps) > 0 {
|
||||
@@ -700,6 +727,13 @@ func (i *Builder) InstallPkgs(
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Отслеживание установки пакетов из репозитория
|
||||
for _, pkg := range repoDeps {
|
||||
if stats.ShouldTrackPackage(pkg) {
|
||||
stats.TrackInstallation(ctx, pkg, "install")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return builtDeps, nil
|
||||
|
Reference in New Issue
Block a user