From 0b6e4e087243cfe4c5a9bee48f76de2adfc79d8a Mon Sep 17 00:00:00 2001 From: morganamilo Date: Wed, 28 Feb 2018 15:20:26 +0000 Subject: [PATCH] Correctly mark packages as dependencies Previously Installing repo targets and repo dependencies of aur targets was done in two steps. doing `yay -S repo1 repo2 aur1 aur2` would lead to yay calling `pacman -S repo1 repo2`. Then after we find all the dependencies of the aur packages we call `pacman -S --asdeps `. This was an easy way to correctly mark dependencies. Since 005635b4 Both these calls were merged into one command but dependency marking was forgoten about. Now correctly mark the dependencies through `pacman -D` --- install.go | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/install.go b/install.go index bd63dbe8..1fffefa5 100644 --- a/install.go +++ b/install.go @@ -16,7 +16,7 @@ import ( // Install handles package installs func install(parser *arguments) error { removeMake := false - aur, repo, err := packageSlices(parser.targets.toSlice()) + aurTargets, repoTargets, err := packageSlices(parser.targets.toSlice()) if err != nil { return err } @@ -25,7 +25,7 @@ func install(parser *arguments) error { var dc *depCatagories //fmt.Println(greenFg(arrow), greenFg("Resolving Dependencies")) - requestTargets := append(aur, repo...) + requestTargets := append(aurTargets, repoTargets...) //remotenames: names of all non repo packages on the system _, _, _, remoteNames, err := filterPackages() @@ -45,7 +45,7 @@ func install(parser *arguments) error { requestTargets = append(requestTargets, remoteNames...) } - if len(aur) > 0 || parser.existsArg("u", "sysupgrade") && len(remoteNames) > 0 { + if len(aurTargets) > 0 || parser.existsArg("u", "sysupgrade") && len(remoteNames) > 0 { fmt.Println(boldCyanFg("::"), boldFg("Querying AUR...")) } dt, err := getDepTree(requestTargets) @@ -105,9 +105,9 @@ func install(parser *arguments) error { arguments.addTarget(pkg.Name()) } - for _, pkg := range repo { - arguments.addTarget(pkg) - } + //for _, pkg := range repoTargets { + //arguments.addTarget(pkg) + //} if len(dc.Aur) == 0 && len(arguments.targets) == 0 { fmt.Println("There is nothing to do") @@ -124,6 +124,24 @@ func install(parser *arguments) error { if err != nil { return fmt.Errorf("Error installing repo packages.") } + + + depArguments := makeArguments() + depArguments.addArg("D", "asdeps") + + for _, pkg := range dc.Repo { + depArguments.addTarget(pkg.Name()) + } + for _, pkg := range repoTargets { + depArguments.delTarget(pkg) + } + + if len(depArguments.targets) > 0 { + err = passToPacman(depArguments) + if err != nil { + return err + } + } } if hasAur { @@ -208,8 +226,12 @@ func install(parser *arguments) error { oldValue := config.NoConfirm config.NoConfirm = true - passToPacman(removeArguments) + err = passToPacman(removeArguments) config.NoConfirm = oldValue + + if err != nil { + return err + } } if config.CleanAfter {