123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package main
- import (
- "bufio"
- "errors"
- "fmt"
- "github.com/Jguer/go-alpm"
- "github.com/Jguer/yay/aur"
- "os"
- "strconv"
- "strings"
- )
- func searchAndInstall(pkgName string, conf alpm.PacmanConfig, flags ...string) (err error) {
- var num int
- var numberString string
- aurRes, err := aur.Search(pkgName, true)
- repoRes, err := SearchPackages(pkgName, conf)
- if err != nil {
- return
- }
- if repoRes.Resultcount == 0 && aurRes.Resultcount == 0 {
- return errors.New("No Packages match search")
- }
- repoRes.printSearch(0)
- aurRes.PrintSearch(repoRes.Resultcount)
- fmt.Printf("\x1B[32m%s\033[0m\nNumbers:", "Type numbers to install. Separate each number with a space.")
- reader := bufio.NewReader(os.Stdin)
- numberString, err = reader.ReadString('\n')
- if err != nil {
- fmt.Println(err)
- return
- }
- var index int
- result := strings.Fields(numberString)
- for _, numS := range result {
- num, err = strconv.Atoi(numS)
- if err != nil {
- fmt.Println(err)
- continue
- }
- fmt.Println(num)
- // Install package
- if num > repoRes.Resultcount-1 {
- index = num - repoRes.Resultcount
- err = aurRes.Results[num-index].Install(BuildDir, conf, flags...)
- if err != nil {
- // Do not abandon program, we might still be able to install the rest
- fmt.Println(err)
- }
- } else {
- InstallPackage(repoRes.Results[num].Name, conf, flags...)
- }
- }
- return
- }
- func searchMode(pkg string, conf alpm.PacmanConfig) (err error) {
- _, err = aur.Search(pkg, true)
- if err != nil {
- return err
- }
- repo, err := SearchPackages(pkg, conf)
- if err != nil {
- return err
- }
- aur.printSearch(SearchMode)
- repo.printSearch(SearchMode)
- return nil
- }
|