This commit is contained in:
2025-04-15 17:52:50 +03:00
parent 6df5baa457
commit 57225e05bd
13 changed files with 176 additions and 152 deletions

View File

@@ -23,7 +23,6 @@ import (
"context"
"fmt"
"log/slog"
"syscall"
"github.com/leonelquinteros/gotext"
"github.com/urfave/cli/v2"
@@ -32,7 +31,6 @@ import (
"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils"
appbuilder "gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils/app_builder"
"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/internal/overrides"
"gitea.plemya-x.ru/Plemya-x/ALR/internal/types"
@@ -40,7 +38,6 @@ import (
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/build"
"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"
)
@@ -61,13 +58,33 @@ func UpgradeCmd() *cli.Command {
return err
}
if err := utils.ExitIfCantDropCapsToAlrUser(); err != nil {
return err
}
installer, installerClose, err := build.GetSafeInstaller()
if err != nil {
return err
}
defer installerClose()
if err := utils.ExitIfCantSetNoNewPrivs(); err != nil {
return err
}
scripter, scripterClose, err := build.GetSafeScriptExecutor()
if err != nil {
return err
}
defer scripterClose()
ctx := c.Context
deps, err := appbuilder.
New(ctx).
WithConfig().
WithDB().
WithReposNoPull().
WithRepos().
WithDistroInfo().
WithManager().
Build()
@@ -76,25 +93,18 @@ func UpgradeCmd() *cli.Command {
}
defer deps.Defer()
builder, cleanup, err := build.NewMainBuilder(
builder, err := build.NewMainBuilder(
deps.Cfg,
deps.Manager,
deps.Repos,
scripter,
installer,
)
if err != nil {
return err
}
defer cleanup()
slog.Warn("", "uid", syscall.Getuid(), "gid", syscall.Getgid())
if deps.Cfg.AutoPull() {
if err := deps.Repos.Pull(ctx, deps.Cfg.Repos()); err != nil {
return cliutils.FormatCliExit(gotext.Get("Error pulling repositories"), err)
}
}
updates, err := checkForUpdates(ctx, deps.Manager, deps.Cfg, deps.DB, deps.Repos, deps.Info)
updates, err := checkForUpdates(ctx, deps.Manager, deps.DB, deps.Info)
if err != nil {
return cliutils.FormatCliExit(gotext.Get("Error checking for updates"), err)
}
@@ -127,9 +137,7 @@ func UpgradeCmd() *cli.Command {
func checkForUpdates(
ctx context.Context,
mgr manager.Manager,
cfg *config.ALRConfig,
db *database.Database,
rs *repos.Repos,
info *distro.OSRelease,
) ([]database.Package, error) {
installed, err := mgr.ListInstalled(nil)