mirror of
https://github.com/Jguer/yay
synced 2024-10-06 08:09:11 +00:00
Repo Search added to cut on memory use
This commit is contained in:
parent
db13e47f09
commit
f51b897e3e
|
@ -29,8 +29,7 @@ func searchAndInstall(pkgName string, conf *alpm.PacmanConfig, flags []string) (
|
|||
r.PrintSearch(0)
|
||||
a.PrintSearch(len(r.Results))
|
||||
|
||||
args = append(args, "pacman")
|
||||
args = append(args, "-S")
|
||||
args = append(args, "pacman", "-S")
|
||||
|
||||
fmt.Printf("\x1B[32m%s\033[0m\nNumbers:", "Type numbers to install. Separate each number with a space.")
|
||||
reader := bufio.NewReader(os.Stdin)
|
||||
|
@ -95,12 +94,8 @@ func searchMode(pkg string, conf *alpm.PacmanConfig) (err error) {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r, err := SearchPackages(pkg, conf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.PrintSearch(SearchMode)
|
||||
SearchRepos(pkg, conf, SearchMode)
|
||||
a.PrintSearch(SearchMode)
|
||||
|
||||
return nil
|
||||
|
|
42
pacman.go
42
pacman.go
|
@ -105,6 +105,48 @@ func UpdatePackages(flags []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// SearchRepos searches and prints packages in repo
|
||||
func SearchRepos(pkgName string, conf *alpm.PacmanConfig, mode int) (err error) {
|
||||
h, err := conf.CreateHandle()
|
||||
defer h.Release()
|
||||
if err != nil {
|
||||
}
|
||||
|
||||
dbList, err := h.SyncDbs()
|
||||
localdb, err := h.LocalDb()
|
||||
|
||||
var installed bool
|
||||
var i int
|
||||
for _, db := range dbList.Slice() {
|
||||
for _, pkg := range db.PkgCache().Slice() {
|
||||
if strings.Contains(pkg.Name(), pkgName) {
|
||||
if r, _ := localdb.PkgByName(pkg.Name()); r != nil {
|
||||
installed = true
|
||||
} else {
|
||||
installed = false
|
||||
}
|
||||
|
||||
switch {
|
||||
case mode != SearchMode && installed == true:
|
||||
fmt.Printf("%d \033[1m%s/\x1B[33m%s \x1B[36m%s \x1B[32;40mInstalled\033[0m\n%s\n",
|
||||
i, db.Name(), pkg.Name(), pkg.Version(), pkg.Description())
|
||||
case mode != SearchMode && installed != true:
|
||||
fmt.Printf("%d \033[1m%s/\x1B[33m%s \x1B[36m%s\033[0m\n%s\n",
|
||||
i, db.Name(), pkg.Name(), pkg.Version(), pkg.Description())
|
||||
case mode == SearchMode && installed == true:
|
||||
fmt.Printf("\033[1m%s/\x1B[33m%s \x1B[36m%s \x1B[32;40mInstalled\033[0m\n%s\n",
|
||||
db.Name(), pkg.Name(), pkg.Version(), pkg.Description())
|
||||
case mode == SearchMode && installed != true:
|
||||
fmt.Printf("\033[1m%s/\x1B[33m%s \x1B[36m%s\033[0m\n%s\n",
|
||||
db.Name(), pkg.Name(), pkg.Version(), pkg.Description())
|
||||
}
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// SearchPackages handles repo searches. Creates a RepoSearch struct.
|
||||
func SearchPackages(pkgName string, conf *alpm.PacmanConfig) (s RepoSearch, err error) {
|
||||
h, err := conf.CreateHandle()
|
||||
|
|
Loading…
Reference in a new issue