aur.go 727 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package download
  2. import (
  3. "errors"
  4. "io/ioutil"
  5. "net/http"
  6. "net/url"
  7. "github.com/leonelquinteros/gotext"
  8. )
  9. var AURPackageURL = "https://aur.archlinux.org/cgit/aur.git"
  10. var ErrAURPackageNotFound = errors.New(gotext.Get("package not found in AUR"))
  11. func GetAURPkgbuild(httpClient *http.Client, pkgName string) ([]byte, error) {
  12. values := url.Values{}
  13. values.Set("h", pkgName)
  14. pkgURL := AURPackageURL + "/plain/PKGBUILD?" + values.Encode()
  15. resp, err := httpClient.Get(pkgURL)
  16. if err != nil {
  17. return nil, err
  18. }
  19. if resp.StatusCode != 200 {
  20. return nil, ErrAURPackageNotFound
  21. }
  22. defer resp.Body.Close()
  23. pkgBuild, err := ioutil.ReadAll(resp.Body)
  24. if err != nil {
  25. return nil, err
  26. }
  27. return pkgBuild, nil
  28. }