From 1a77f42276e93945e194339b641e35883d06ad79 Mon Sep 17 00:00:00 2001 From: Jguer Date: Sun, 2 Oct 2016 18:52:48 +0100 Subject: [PATCH] Fixed pacman pass prepend --- actions.go | 23 +++++++++++++++-------- pacman.go | 2 +- yay.go | 3 --- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/actions.go b/actions.go index f6d1a701..f8233be4 100644 --- a/actions.go +++ b/actions.go @@ -2,6 +2,7 @@ package main import ( "bufio" + "bytes" "errors" "fmt" "github.com/Jguer/go-alpm" @@ -14,6 +15,7 @@ import ( func searchAndInstall(pkgName string, conf *alpm.PacmanConfig, flags string) (err error) { var num int var numberString string + var pacBuffer bytes.Buffer a, err := aur.Search(pkgName, true) r, err := SearchPackages(pkgName, conf) @@ -35,7 +37,7 @@ func searchAndInstall(pkgName string, conf *alpm.PacmanConfig, flags string) (er return } - var index int + var aurInstall []aur.Result result := strings.Fields(numberString) for _, numS := range result { num, err = strconv.Atoi(numS) @@ -46,17 +48,22 @@ func searchAndInstall(pkgName string, conf *alpm.PacmanConfig, flags string) (er // Install package if num > len(r.Results)-1 { - index = num - len(r.Results) - err = a.Results[index].Install(BuildDir, conf, flags) - if err != nil { - // Do not abandon program, we might still be able to install the rest - fmt.Println(err) - } + aurInstall = append(aurInstall, a.Results[num-len(r.Results)]) } else { - InstallPackage(r.Results[num].Name, conf, flags) + pacBuffer.WriteString(r.Results[num].Name) + pacBuffer.WriteString(" ") } } + InstallPackage(strings.TrimSpace(pacBuffer.String()), conf, flags) + + for _, aurpkg := range aurInstall { + err = aurpkg.Install(BuildDir, conf, flags) + if err != nil { + // Do not abandon program, we might still be able to install the rest + fmt.Println(err) + } + } return } diff --git a/pacman.go b/pacman.go index bfb60d52..f2ce5c54 100644 --- a/pacman.go +++ b/pacman.go @@ -143,7 +143,7 @@ func passToPacman(op string, pkg string, flags string) error { if strings.Contains(op, "Q") { cmd = exec.Command("pacman", args...) } else { - args = append(args, "pacman") + args = append([]string{"pacman"}, args...) cmd = exec.Command("sudo", args...) } diff --git a/yay.go b/yay.go index 0a412265..ff949b85 100644 --- a/yay.go +++ b/yay.go @@ -7,9 +7,6 @@ import ( "strings" ) -// PacmanBin describes the default installation point of pacman -const PacmanBin string = "/usr/bin/pacman" - // PacmanConf describes the default pacman config file const PacmanConf string = "/etc/pacman.conf"