utils.go 820 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package aur
  2. import (
  3. "encoding/json"
  4. "io"
  5. "net/http"
  6. "os"
  7. )
  8. // Editor gives the default system editor, uses vi in last case
  9. var Editor = "vi"
  10. func init() {
  11. if os.Getenv("EDITOR") != "" {
  12. Editor = os.Getenv("EDITOR")
  13. }
  14. }
  15. // getJSON handles JSON retrieval and decoding to struct
  16. func getJSON(url string, target interface{}) error {
  17. r, err := http.Get(url)
  18. if err != nil {
  19. return err
  20. }
  21. defer r.Body.Close()
  22. return json.NewDecoder(r.Body).Decode(target)
  23. }
  24. func downloadFile(filepath string, url string) (err error) {
  25. // Create the file
  26. out, err := os.Create(filepath)
  27. if err != nil {
  28. return err
  29. }
  30. defer out.Close()
  31. // Get the data
  32. resp, err := http.Get(url)
  33. if err != nil {
  34. return err
  35. }
  36. defer resp.Body.Close()
  37. // Writer the body to file
  38. _, err = io.Copy(out, resp.Body)
  39. return err
  40. }