mirror of https://github.com/rocboss/paopao-ce
parent
fb552babcd
commit
60206a8a22
@ -0,0 +1,116 @@
|
||||
//go:build mage
|
||||
// +build mage
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go/build"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/alimy/mir/v5/core"
|
||||
"github.com/alimy/mir/v5/engine"
|
||||
"github.com/livekit/mageutil"
|
||||
)
|
||||
|
||||
var Default = Generate
|
||||
|
||||
// regenerate mir and protobuf
|
||||
func Generate() (err error) {
|
||||
return anyFun(cleanAuto, Mir, Rpc, Enum, Fmt)
|
||||
}
|
||||
|
||||
// regenerate mir RESTful API interface
|
||||
func Mir() error {
|
||||
fmt.Println("Generating mir")
|
||||
if err := engine.Generate(
|
||||
core.UseGin(),
|
||||
core.Schema("mirc"),
|
||||
core.SinkPath("auto"),
|
||||
core.WatchCtxDone(true),
|
||||
core.RunMode(core.InSerialMode),
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
return gofmt("./auto/api/...")
|
||||
}
|
||||
|
||||
// regenerate RPC API interface
|
||||
func Rpc() error {
|
||||
fmt.Println("Generating gRPC source code")
|
||||
cmd := exec.Command("buf", "generate", "proto")
|
||||
mageutil.ConnectStd(cmd)
|
||||
if err := cmd.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
return gofmt("./auto/rpc/...")
|
||||
}
|
||||
|
||||
func Enum() error {
|
||||
fmt.Println("Generating Enum source code")
|
||||
cmd := exec.Command("go", "generate", "./internal/model/enum/...")
|
||||
mageutil.ConnectStd(cmd)
|
||||
if err := cmd.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
return gofmt("./internal/model/enum/...")
|
||||
}
|
||||
|
||||
// run tests
|
||||
func Test() error {
|
||||
fmt.Println("Testing start")
|
||||
cmd := exec.Command("go", "test", "-race", "./...")
|
||||
connectStd(cmd)
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
// format source code
|
||||
func Fmt() error {
|
||||
return gofmt("./...")
|
||||
}
|
||||
|
||||
func gofmt(pattern string) error {
|
||||
fmt.Printf("Formating source code [%s]\n", pattern)
|
||||
cmd := exec.Command("go", "fmt", pattern)
|
||||
mageutil.ConnectStd(cmd)
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
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 cleanAuto() error {
|
||||
fmt.Println("Delete auto directory")
|
||||
cmd := exec.Command("rm", "-rf", "auto")
|
||||
connectStd(cmd)
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
func connectStd(cmd *exec.Cmd) {
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
}
|
||||
|
||||
func anyFun(fn ...func() error) (err error) {
|
||||
for _, f := range fn {
|
||||
if err = f(); err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
Loading…
Reference in new issue