update.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package main
  2. import (
  3. "fmt"
  4. "io"
  5. "os"
  6. "os/exec"
  7. "strings"
  8. "github.com/kr/pty"
  9. "github.com/urfave/cli"
  10. )
  11. func runUpdate(root, param string) {
  12. cmd := exec.Command("make", "bazel-update")
  13. cmd.Dir = param
  14. cmd.Env = append(cmd.Env, "KRATOS_ROOT="+root, "GOPATH="+root, "PATH="+os.Getenv("PATH"))
  15. f, err := pty.Start(cmd)
  16. if err != nil {
  17. panic(err)
  18. }
  19. io.Copy(os.Stdout, f)
  20. }
  21. func runProwUpdate(root, param string) {
  22. cmd := exec.Command("make", "prow-update")
  23. cmd.Dir = param
  24. cmd.Env = append(cmd.Env, "KRATOS_ROOT="+root, "GOPATH="+root, "PATH="+os.Getenv("PATH"))
  25. f, err := pty.Start(cmd)
  26. if err != nil {
  27. panic(err)
  28. }
  29. io.Copy(os.Stdout, f)
  30. }
  31. func updateAction(c *cli.Context) error {
  32. pwd, err := os.Getwd()
  33. if err != nil {
  34. return err
  35. }
  36. index := strings.Index(pwd, "go-common")
  37. if index == -1 {
  38. fmt.Println("not in go-common")
  39. os.Exit(1)
  40. }
  41. path := strings.Split(pwd[:index-1], "/")
  42. result := strings.Split(pwd[index:], "/")
  43. path = append(path, result[0])
  44. runPath := strings.Join(path, "/")
  45. runUpdate(strings.Join(path[:len(path)-2], "/"), runPath)
  46. return nil
  47. }
  48. func updateProwAction() error {
  49. pwd, err := os.Getwd()
  50. if err != nil {
  51. return err
  52. }
  53. index := strings.Index(pwd, "go-common")
  54. if index == -1 {
  55. fmt.Println("not in go-common")
  56. os.Exit(1)
  57. }
  58. path := strings.Split(pwd[:index-1], "/")
  59. result := strings.Split(pwd[index:], "/")
  60. path = append(path, result[0])
  61. runPath := strings.Join(path, "/")
  62. runProwUpdate(strings.Join(path[:len(path)-2], "/"), runPath)
  63. return nil
  64. }