update.go 839 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package commands
  2. import (
  3. "os"
  4. "net/http"
  5. "github.com/astaxie/beego"
  6. "encoding/json"
  7. "io/ioutil"
  8. "fmt"
  9. )
  10. func Update() {
  11. if len(os.Args) > 2 && os.Args[1] == "update" {
  12. os.Exit(0)
  13. }
  14. }
  15. //检查最新版本.
  16. func CheckUpdate() {
  17. if len(os.Args) >= 2 && os.Args[1] == "version" {
  18. resp, err := http.Get("https://api.github.com/repos/lifei6671/godoc/tags")
  19. if err != nil {
  20. beego.Error("CheckUpdate => ", err)
  21. os.Exit(1)
  22. }
  23. defer resp.Body.Close()
  24. body, err := ioutil.ReadAll(resp.Body)
  25. if err != nil {
  26. beego.Error("CheckUpdate => ", err)
  27. os.Exit(1)
  28. }
  29. var result []*struct {
  30. Name string `json:"name"`
  31. }
  32. err = json.Unmarshal(body, &result)
  33. if err != nil {
  34. beego.Error("CheckUpdate => ", err)
  35. os.Exit(1)
  36. }
  37. fmt.Println("MinDoc last version => ",result[0].Name)
  38. os.Exit(0)
  39. }
  40. }