aur.go 1009 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package download
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "net/http"
  6. "net/url"
  7. "github.com/Jguer/yay/v10/pkg/settings/exe"
  8. )
  9. var AURPackageURL = "https://aur.archlinux.org/cgit/aur.git"
  10. func AURPKGBUILD(httpClient *http.Client, pkgName string) ([]byte, error) {
  11. values := url.Values{}
  12. values.Set("h", pkgName)
  13. pkgURL := AURPackageURL + "/plain/PKGBUILD?" + values.Encode()
  14. resp, err := httpClient.Get(pkgURL)
  15. if err != nil {
  16. return nil, err
  17. }
  18. if resp.StatusCode != http.StatusOK {
  19. return nil, ErrAURPackageNotFound{pkgName: pkgName}
  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. }
  28. // AURPkgbuildRepo retrieves the PKGBUILD repository to a dest directory.
  29. func AURPKGBUILDRepo(cmdRunner exe.Runner, cmdBuilder exe.GitCmdBuilder, aurURL, pkgName, dest string, force bool) error {
  30. pkgURL := fmt.Sprintf("%s/%s.git", aurURL, pkgName)
  31. return downloadGitRepo(cmdRunner, cmdBuilder, pkgURL, pkgName, dest, force)
  32. }