You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.5 KiB
72 lines
1.5 KiB
package main |
|
|
|
import ( |
|
"fmt" |
|
"io" |
|
"os" |
|
"os/exec" |
|
"strings" |
|
|
|
"github.com/kr/pty" |
|
"github.com/urfave/cli" |
|
) |
|
|
|
func runUpdate(root, param string) { |
|
cmd := exec.Command("make", "bazel-update") |
|
cmd.Dir = param |
|
cmd.Env = append(cmd.Env, "KRATOS_ROOT="+root, "GOPATH="+root, "PATH="+os.Getenv("PATH")) |
|
f, err := pty.Start(cmd) |
|
if err != nil { |
|
panic(err) |
|
} |
|
io.Copy(os.Stdout, f) |
|
} |
|
|
|
func runProwUpdate(root, param string) { |
|
cmd := exec.Command("make", "prow-update") |
|
cmd.Dir = param |
|
cmd.Env = append(cmd.Env, "KRATOS_ROOT="+root, "GOPATH="+root, "PATH="+os.Getenv("PATH")) |
|
f, err := pty.Start(cmd) |
|
if err != nil { |
|
panic(err) |
|
} |
|
io.Copy(os.Stdout, f) |
|
} |
|
|
|
func updateAction(c *cli.Context) error { |
|
pwd, err := os.Getwd() |
|
if err != nil { |
|
return err |
|
} |
|
|
|
index := strings.Index(pwd, "go-common") |
|
if index == -1 { |
|
fmt.Println("not in go-common") |
|
os.Exit(1) |
|
} |
|
path := strings.Split(pwd[:index-1], "/") |
|
result := strings.Split(pwd[index:], "/") |
|
path = append(path, result[0]) |
|
runPath := strings.Join(path, "/") |
|
runUpdate(strings.Join(path[:len(path)-2], "/"), runPath) |
|
return nil |
|
} |
|
|
|
func updateProwAction() error { |
|
pwd, err := os.Getwd() |
|
if err != nil { |
|
return err |
|
} |
|
|
|
index := strings.Index(pwd, "go-common") |
|
if index == -1 { |
|
fmt.Println("not in go-common") |
|
os.Exit(1) |
|
} |
|
path := strings.Split(pwd[:index-1], "/") |
|
result := strings.Split(pwd[index:], "/") |
|
path = append(path, result[0]) |
|
runPath := strings.Join(path, "/") |
|
runProwUpdate(strings.Join(path[:len(path)-2], "/"), runPath) |
|
return nil |
|
}
|
|
|