-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathmagefile.go
More file actions
109 lines (86 loc) · 3.12 KB
/
Copy pathmagefile.go
File metadata and controls
109 lines (86 loc) · 3.12 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
//go:build mage
package main
import (
"fmt"
"github.com/openimsdk/gomake/mageutil"
)
var Default = BuildAll
var Aliases = map[string]any{
"buildcc": BuildWithCustomConfig,
"startcc": StartWithCustomConfig,
}
var (
customRootDir = "."
// customSrcDir = "work_cmd"
customSrcDir = "cmd"
customOutputDir = "_output"
customConfigDir = "config"
customToolsDir = "tools"
customExportProjectName = "gomake"
customExportBuildOpt *mageutil.BuildOptions
)
func BuildAll() error { return Build(nil, nil) }
// Build supports building specific services and tools.
//
// Example: `mage build -services=openim-api,openim-rpc-user -tools=seq`
func Build(services *string, tools *string) (err error) {
defer mageutil.PrintErrPtr(&err)
return mageutil.WithSpinnerR("Building binaries...", func() error {
return mageutil.Build(mageutil.ParseArgList(services), mageutil.ParseArgList(tools), nil, nil)
})
}
func BuildWithCustomConfig(services *string, tools *string) (err error) {
defer mageutil.PrintErrPtr(&err)
config := &mageutil.PathOptions{
RootDir: &customRootDir, // default is "."(current directory)
OutputDir: &customOutputDir, // default is "_output"
SrcDir: &customSrcDir, // default is "cmd"
ToolsDir: &customToolsDir, // default is "tools"
}
return mageutil.WithSpinnerR("Building binaries with custom config...", func() error {
return mageutil.Build(mageutil.ParseArgList(services), mageutil.ParseArgList(tools), config, nil)
})
}
func Start(tools *string, services *string) (err error) {
defer mageutil.PrintErrPtr(&err)
return mageutil.WithSpinnerR("Starting tools and services...", func() error {
return mageutil.StartToolsAndServices(mageutil.ParseArgList(tools), mageutil.ParseArgList(services), nil)
})
}
func StartWithCustomConfig(tools *string, services *string) (err error) {
defer mageutil.PrintErrPtr(&err)
config := &mageutil.PathOptions{
RootDir: &customRootDir, // default is "."(current directory)
OutputDir: &customOutputDir, // default is "_output"
ConfigDir: &customConfigDir, // default is "config"
}
return mageutil.WithSpinnerR("Starting tools and services with custom config...", func() error {
return mageutil.StartToolsAndServices(mageutil.ParseArgList(tools), mageutil.ParseArgList(services), config)
})
}
func Stop() (err error) {
defer mageutil.PrintErrPtr(&err)
return mageutil.WithSpinnerR("Checking service status...", mageutil.StopAndCheckServices)
}
func Check() (err error) {
defer mageutil.PrintErrPtr(&err)
return mageutil.WithSpinnerR("Checking service status...", mageutil.CheckAndReportServicesStatus)
}
func Protocol() (err error) {
defer mageutil.PrintErrPtr(&err)
return mageutil.WithSpinnerR("Generating protocol artifacts...", mageutil.Protocol)
}
func Export() (err error) {
defer mageutil.PrintErrPtr(&err)
exportOpt := &mageutil.ExportOptions{
ProjectName: &customExportProjectName,
BuildOpt: customExportBuildOpt,
}
err = mageutil.WithSpinnerR("Exporting launcher archive...", func() error {
return mageutil.ExportMageLauncherArchived(nil, exportOpt)
})
if err != nil {
return fmt.Errorf("export failed %w", err)
}
return nil
}