fix(install): use global arguments when removing make dependencies (#1940)

fix(install): use global arguments when removing make dependencies

One example where this would fail before is when the `--root` argument
was passed in by the user. Yay would install the make dependencies to
the new root directory, but would try to remove them from / causing the
installation to fail if the make dependencies were not found in the
default installation path (/).
This commit is contained in:
Joey H 2023-02-26 05:25:02 -06:00 committed by GitHub
parent fa2e726ca6
commit 0387dfdb59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 7 deletions

View file

@ -224,7 +224,7 @@ func install(ctx context.Context, cmdArgs *parser.Arguments, dbExecutor db.Execu
switch config.RemoveMake {
case "yes":
defer func() {
err = removeMake(ctx, config.Runtime.CmdBuilder, do.GetMake())
err = removeMake(ctx, config.Runtime.CmdBuilder, do.GetMake(), cmdArgs)
}()
case "no":
@ -232,7 +232,7 @@ func install(ctx context.Context, cmdArgs *parser.Arguments, dbExecutor db.Execu
default:
if text.ContinueTask(os.Stdin, gotext.Get("Remove make dependencies after install?"), false, settings.NoConfirm) {
defer func() {
err = removeMake(ctx, config.Runtime.CmdBuilder, do.GetMake())
err = removeMake(ctx, config.Runtime.CmdBuilder, do.GetMake(), cmdArgs)
}()
}
}
@ -383,8 +383,8 @@ func addUpgradeTargetsToArgs(ctx context.Context, dbExecutor db.Executor,
return requestTargets, nil
}
func removeMake(ctx context.Context, cmdBuilder exe.ICmdBuilder, makeDeps []string) error {
removeArguments := parser.MakeArguments()
func removeMake(ctx context.Context, cmdBuilder exe.ICmdBuilder, makeDeps []string, cmdArgs *parser.Arguments) error {
removeArguments := cmdArgs.CopyGlobal()
err := removeArguments.AddArg("R", "u")
if err != nil {

View file

@ -14,6 +14,7 @@ import (
"github.com/Jguer/yay/v11/pkg/menus"
"github.com/Jguer/yay/v11/pkg/settings"
"github.com/Jguer/yay/v11/pkg/settings/exe"
"github.com/Jguer/yay/v11/pkg/settings/parser"
"github.com/Jguer/yay/v11/pkg/text"
gosrc "github.com/Morganamilo/go-srcinfo"
@ -70,7 +71,7 @@ func (preper *Preparer) ShouldCleanAURDirs(pkgBuildDirs map[string]string) PostI
}
}
func (preper *Preparer) ShouldCleanMakeDeps() PostInstallHookFunc {
func (preper *Preparer) ShouldCleanMakeDeps(cmdArgs *parser.Arguments) PostInstallHookFunc {
if len(preper.makeDeps) == 0 {
return nil
}
@ -89,7 +90,7 @@ func (preper *Preparer) ShouldCleanMakeDeps() PostInstallHookFunc {
text.Debugln("added post install hook to clean up AUR makedeps", preper.makeDeps)
return func(ctx context.Context) error {
return removeMake(ctx, preper.cfg.Runtime.CmdBuilder, preper.makeDeps)
return removeMake(ctx, preper.cfg.Runtime.CmdBuilder, preper.makeDeps, cmdArgs)
}
}

View file

@ -112,7 +112,7 @@ func (o *OperationService) Run(ctx context.Context,
return errInstall
}
cleanFunc := preparer.ShouldCleanMakeDeps()
cleanFunc := preparer.ShouldCleanMakeDeps(cmdArgs)
if cleanFunc != nil {
installer.AddPostInstallHook(cleanFunc)
}