-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmagefile.go
More file actions
119 lines (104 loc) · 3.24 KB
/
magefile.go
File metadata and controls
119 lines (104 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//go:build mage
// +build mage
package main
import (
"fmt"
"os"
"os/exec"
"github.com/magefile/mage/mg"
)
// Default target to run when none is specified
// If not set, running mage will list available targets
var Default = Build
// Generate runs sqlc code generation
func Generate() error {
fmt.Println("Generating sqlc code...")
sqlcPath := "$(go env GOPATH)/bin/sqlc"
cmd := exec.Command("sh", "-c", sqlcPath+" generate")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
// A build step that requires additional params, or platform specific steps for example
func Build() error {
mg.Deps(Generate)
mg.Deps(BuildRateReader)
mg.Deps(BuildTestDataBuilder)
mg.Deps(BuildLDCServer)
mg.Deps(BuildGDCServer)
mg.Deps(BuildDeviceSimulator)
mg.Deps(BuildAPIServer)
mg.Deps(BuildReadLogs)
mg.Deps(BuildEventDump)
fmt.Println("Compilation finished")
return nil
}
// A custom install step if you need your bin someplace other than go/bin
func Install() error {
mg.Deps(Build)
fmt.Println("Installing...")
return os.Rename("./MyApp", "/usr/bin/MyApp")
}
func BuildGDCServer() error {
fmt.Println("Building gdcRPC executable...")
ldflags := os.Getenv("CGO_LDFLAGS")
cflags := os.Getenv("CGO_CFLAGS")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/gdcRPC", "./gdcRPC")
cmd.Env = append(os.Environ(),
fmt.Sprintf("CGO_ENABLED=1"),
fmt.Sprintf("CGO_LDFLAGS=%s", ldflags),
fmt.Sprintf("CGO_CFLAGS=%s", cflags))
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildLDCServer() error {
fmt.Println("Building ldcRPC executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/ldcRPC", "./ldcRPC")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildAPIServer() error {
fmt.Println("Building API executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/duckAPI", "./api")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildReadLogs() error {
fmt.Println("Building readLogs executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/readLogs", "./readLogs")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildRateReader() error {
fmt.Println("Building rateReader executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/rateReader", "./rateReader")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildTestDataBuilder() error {
fmt.Println("Building testDataBuilder executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/testDataBuilder", "./testDataBuilder")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildEventDump() error {
fmt.Println("Building eventDump executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/eventDump", "./eventDump")
cmd.Env = append(os.Environ(), "CGO_ENABLED=0")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func BuildDeviceSimulator() error {
fmt.Println("Building deviceSimulator executable...")
cmd := exec.Command("go", "build", "-buildvcs=false", "-o", "./bin/deviceSimulator", "./deviceSimulator")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}