* ingress updates * generated protobuf * undo refactor Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
116 lines
2.3 KiB
Go
116 lines
2.3 KiB
Go
//go:build mage
|
|
// +build mage
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"go/build"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
)
|
|
|
|
var Default = Proto
|
|
|
|
// regenerate protobuf
|
|
func Proto() error {
|
|
twirpProtoFiles := []string{
|
|
"livekit_egress.proto",
|
|
"livekit_ingress.proto",
|
|
"livekit_room.proto",
|
|
}
|
|
grpcProtoFiles := []string{
|
|
"livekit_analytics.proto",
|
|
"livekit_internal.proto",
|
|
"livekit_models.proto",
|
|
"livekit_rpc_internal.proto",
|
|
"livekit_rtc.proto",
|
|
"livekit_webhook.proto",
|
|
}
|
|
|
|
fmt.Println("generating protobuf")
|
|
target := "livekit"
|
|
if err := os.MkdirAll(target, 0755); err != nil {
|
|
return err
|
|
}
|
|
|
|
protoc, err := getToolPath("protoc")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
protocGoPath, err := getToolPath("protoc-gen-go")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
twirpPath, err := getToolPath("protoc-gen-twirp")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
protocGrpcGoPath, err := getToolPath("protoc-gen-go-grpc")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println("generating twirp protobuf")
|
|
args := append([]string{
|
|
"--go_out", target,
|
|
"--twirp_out", target,
|
|
"--go_opt=paths=source_relative",
|
|
"--twirp_opt=paths=source_relative",
|
|
"--plugin=go=" + protocGoPath,
|
|
"--plugin=twirp=" + twirpPath,
|
|
"-I=.",
|
|
}, twirpProtoFiles...)
|
|
cmd := exec.Command(protoc, args...)
|
|
connectStd(cmd)
|
|
if err := cmd.Run(); err != nil {
|
|
return err
|
|
}
|
|
fmt.Println("generating grpc protobuf")
|
|
args = append([]string{
|
|
"--go_out", target,
|
|
"--go-grpc_out", target,
|
|
"--go_opt=paths=source_relative",
|
|
"--go-grpc_opt=paths=source_relative",
|
|
"--plugin=go=" + protocGoPath,
|
|
"--plugin=go-grpc=" + protocGrpcGoPath,
|
|
"-I=.",
|
|
}, grpcProtoFiles...)
|
|
cmd = exec.Command(protoc, args...)
|
|
connectStd(cmd)
|
|
if err := cmd.Run(); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// run tests
|
|
func Test() error {
|
|
cmd := exec.Command("go", "test", "./...")
|
|
connectStd(cmd)
|
|
return cmd.Run()
|
|
}
|
|
|
|
// helpers
|
|
|
|
func getToolPath(name string) (string, error) {
|
|
if p, err := exec.LookPath(name); err == nil {
|
|
return p, nil
|
|
}
|
|
// check under gopath
|
|
gopath := os.Getenv("GOPATH")
|
|
if gopath == "" {
|
|
gopath = build.Default.GOPATH
|
|
}
|
|
p := filepath.Join(gopath, "bin", name)
|
|
if _, err := os.Stat(p); err != nil {
|
|
return "", err
|
|
}
|
|
return p, nil
|
|
}
|
|
|
|
func connectStd(cmd *exec.Cmd) {
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
}
|