mirror of
https://github.com/livekit/livekit.git
synced 2026-03-30 13:25:42 +00:00
93
magefile.go
93
magefile.go
@@ -97,6 +97,44 @@ func BuildLinux() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func Deadlock() error {
|
||||
if err := installTool("golang.org/x/tools/cmd/goimports", "latest", false); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := run("go get github.com/sasha-s/go-deadlock"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pipe("grep -rl sync.Mutex ./pkg", "xargs sed -i -e s/sync.Mutex/deadlock.Mutex/g"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pipe("grep -rl sync.RWMutex ./pkg", "xargs sed -i -e s/sync.RWMutex/deadlock.RWMutex/g"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pipe("grep -rl deadlock.Mutex\\|deadlock.RWMutex ./pkg", "xargs goimports -w"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := run("go mod tidy"); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Sync() error {
|
||||
if err := pipe("grep -rl deadlock.Mutex ./pkg", "xargs sed -i -e s/deadlock.Mutex/sync.Mutex/g"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pipe("grep -rl deadlock.RWMutex ./pkg", "xargs sed -i -e s/deadlock.RWMutex/sync.RWMutex/g"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := pipe("grep -rl sync.Mutex\\|sync.RWMutex ./pkg", "xargs goimports -w"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := run("go mod tidy"); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// builds and publish snapshot docker image
|
||||
func PublishDocker() error {
|
||||
// don't publish snapshot versions as latest or minor version
|
||||
@@ -127,10 +165,7 @@ func Test() error {
|
||||
// run all tests including integration
|
||||
func TestAll() error {
|
||||
mg.Deps(generateWire, macULimit)
|
||||
// "-v", "-race",
|
||||
cmd := exec.Command("go", "test", "./...", "-count=1", "-timeout=4m", "-v")
|
||||
connectStd(cmd)
|
||||
return cmd.Run()
|
||||
return run("go test ./... -count=1 -timeout=4m -v")
|
||||
}
|
||||
|
||||
// cleans up builds
|
||||
@@ -145,10 +180,7 @@ func Generate() error {
|
||||
mg.Deps(installDeps, generateWire)
|
||||
|
||||
fmt.Println("generating...")
|
||||
|
||||
cmd := exec.Command("go", "generate", "./...")
|
||||
connectStd(cmd)
|
||||
return cmd.Run()
|
||||
return run("go generate ./...")
|
||||
}
|
||||
|
||||
// code generation for wiring
|
||||
@@ -353,3 +385,48 @@ func (c *Checksummer) computeChecksum() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func run(commands ...string) error {
|
||||
for _, command := range commands {
|
||||
args := strings.Split(command, " ")
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func pipe(first, second string) error {
|
||||
a1 := strings.Split(first, " ")
|
||||
c1 := exec.Command(a1[0], a1[1:]...)
|
||||
|
||||
c1.Stderr = os.Stderr
|
||||
p, err := c1.StdoutPipe()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
a2 := strings.Split(second, " ")
|
||||
c2 := exec.Command(a2[0], a2[1:]...)
|
||||
|
||||
c2.Stdin = p
|
||||
c2.Stdout = os.Stdout
|
||||
c2.Stderr = os.Stderr
|
||||
|
||||
if err = c1.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = c2.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = c1.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = c2.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user