aur.go 643 B

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