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

@@ -51,17 +51,33 @@ func InstallCmd() *cli.Command {
return err
}
if err := utils.ExitIfCantDropCapsToAlrUser(); err != nil {
return err
}
ctx := c.Context
args := c.Args()
if args.Len() < 1 {
return cliutils.FormatCliExit(gotext.Get("Command install expected at least 1 argument, got %d", args.Len()), nil)
}
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().
@@ -75,15 +91,16 @@ func InstallCmd() *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()
err = builder.InstallPkgs(
ctx,
@@ -152,6 +169,7 @@ func RemoveCmd() *cli.Command {
New(ctx).
WithConfig().
WithDB().
WithManager().
Build()
if err != nil {
return cli.Exit(err, 1)
@@ -159,11 +177,7 @@ func RemoveCmd() *cli.Command {
defer deps.Defer()
installedAlrPackages := map[string]string{}
mgr := manager.Detect()
if mgr == nil {
return cliutils.FormatCliExit(gotext.Get("Unable to detect a supported package manager on the system"), nil)
}
installed, err := mgr.ListInstalled(&manager.Opts{AsRoot: false})
installed, err := deps.Manager.ListInstalled(&manager.Opts{AsRoot: false})
if err != nil {
return cliutils.FormatCliExit(gotext.Get("Error listing installed packages"), err)
}
@@ -209,16 +223,19 @@ func RemoveCmd() *cli.Command {
return cliutils.FormatCliExit(gotext.Get("Command remove expected at least 1 argument, got %d", args.Len()), nil)
}
mgr := manager.Detect()
if mgr == nil {
return cliutils.FormatCliExit(gotext.Get("Unable to detect a supported package manager on the system"), nil)
deps, err := appbuilder.
New(c.Context).
WithManager().
Build()
if err != nil {
return err
}
defer deps.Defer()
err := mgr.Remove(&manager.Opts{
if err := deps.Manager.Remove(&manager.Opts{
AsRoot: true,
NoConfirm: !c.Bool("interactive"),
}, c.Args().Slice()...)
if err != nil {
}, c.Args().Slice()...); err != nil {
return cliutils.FormatCliExit(gotext.Get("Error removing packages"), err)
}