From 0387dfdb59aa81c1f2207941b34d815e2f98e40a Mon Sep 17 00:00:00 2001 From: Joey H <89617856+jdholtz@users.noreply.github.com> Date: Sun, 26 Feb 2023 05:25:02 -0600 Subject: [PATCH] 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 (/). --- install.go | 8 ++++---- preparer.go | 5 +++-- sync.go | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/install.go b/install.go index e6bf33bd..0fadec2d 100644 --- a/install.go +++ b/install.go @@ -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 { diff --git a/preparer.go b/preparer.go index b0dad0f4..ed03a071 100644 --- a/preparer.go +++ b/preparer.go @@ -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) } } diff --git a/sync.go b/sync.go index 93330fbd..429d5d8d 100644 --- a/sync.go +++ b/sync.go @@ -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) }