Work towards AUR completion. Right now works on fish, very inefficient, one GET for every completion

This commit is contained in:
Jguer 2017-04-09 02:01:06 +01:00
parent 2bdaec82bc
commit 375f4d74de
3 changed files with 22 additions and 2 deletions

View file

@ -3,7 +3,9 @@ package yay
import (
"bufio"
"fmt"
"io"
"math"
"net/http"
"os"
"os/exec"
"strconv"
@ -325,3 +327,17 @@ func GetPkgbuild(pkg string) (err error) {
err = aur.GetPkgbuild(pkg, wd)
return
}
func Complete() (err error) {
// Get the data
resp, err := http.Get("https://aur.archlinux.org/packages.gz")
if err != nil {
return err
}
defer resp.Body.Close()
_, err = io.Copy(os.Stdout, resp.Body)
if err != nil {
return err
}
return nil
}

View file

@ -61,6 +61,9 @@ func parser() (op string, options []string, packages []string, err error) {
util.SortMode = util.BottomUp
case "--topdown":
util.SortMode = util.TopDown
case "--complete":
yay.Complete()
os.Exit(0)
case "--help":
usage()
os.Exit(0)

View file

@ -1,13 +1,14 @@
# Completions for apacman
# Original Author for pacman: Giorgio Lando <patroclo7@gmail.com>
# Updated for pacman by maxfl, SanskritFritz, faho, f1u77y
# Updated for apacman by jguer
# Updated for yay by jguer
set -l progname yay
set -l listinstalled "(pacman -Q | string replace ' ' \t)"
# This might be an issue if another package manager is also installed (e.g. for containers)
set -l listall "(__fish_print_packages)"
set -l listaur "(yay --complete)"
set -l listrepos "(__fish_print_pacman_repos)"
set -l listgroups "(pacman -Sg)\t'Package Group'"
@ -117,7 +118,7 @@ complete -c $progname -n "$sync; and not __fish_contains_opt -s u sysupgrade" -s
complete -c $progname -n "$sync; and __fish_contains_opt -s u sysupgrade" -s u -l sysupgrade -d 'Also downgrade packages'
complete -c $progname -n $sync -s w -l downloadonly -d 'Only download the target packages'
complete -c $progname -n $sync -s y -l refresh -d 'Download fresh copy of the package list'
complete -c $progname -n "$sync" -xa "$listall $listgroups"
complete -c $progname -n "$sync" -xa "$listall $listgroups $listaur"
# Database options
set -l has_db_opt '__fish_contains_opt asdeps asexplicit'