Skip to content

Commit b65b194

Browse files
author
wuguofu
committed
support windows
1 parent acdccb5 commit b65b194

File tree

8 files changed

+62
-23
lines changed

8 files changed

+62
-23
lines changed

cmd/build.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"os"
77
osexec "os/exec"
8+
"runtime"
89

910
"github.com/spf13/cobra"
1011
"github.com/tal-tech/rigger/common"
@@ -29,6 +30,10 @@ func build(c *cobra.Command, args []string) {
2930
return
3031
}
3132

33+
if runtime.GOOS == "windows" {
34+
args = []string{"build-windows"}
35+
}
36+
3237
cmd := osexec.Command("make", args...)
3338

3439
var buffer bytes.Buffer

cmd/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func example(c *cobra.Command, args []string) {
2929
arg := `go run -tags "` + tag + `" ` + getServiceDir(serviceName) + `/examples/main.go` +
3030
` -p=` + getServiceDir(serviceName) + ` -c=conf/conf.ini`
3131

32-
cmd := osexec.Command("/bin/sh", "-c", arg)
32+
cmd := osexec.Command(syscmd, "-c", arg)
3333

3434
var buffer bytes.Buffer
3535
cmd.Stderr = &buffer

cmd/frame.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func frame(c *cobra.Command, args []string) {
4949

5050
command := sedI() + ` '\/\/Optional ` + addType + `/a\\t` + replaceContent + `' cmd/` + serviceName + `/main.go`
5151

52-
cmd := osexec.Command("/bin/sh", "-c", command)
52+
cmd := osexec.Command(syscmd, "-c", command)
5353

5454
var buffer bytes.Buffer
5555
cmd.Stderr = &buffer

cmd/new.go

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,15 @@ var GitUrl string
3030

3131
var DefaultReplacer *strings.Replacer
3232

33+
var syscmd string
34+
3335
func init() {
36+
system := runtime.GOOS
37+
if system == "windows" {
38+
syscmd = "sh"
39+
} else {
40+
syscmd = "/bin/sh"
41+
}
3442
DefaultReplacer = strings.NewReplacer("\t", "", "\r", "", "\n", "", ".", "", "-", "")
3543
}
3644

@@ -115,7 +123,7 @@ func new(c *cobra.Command, args []string) {
115123
func cloneTpl(serviceName string) error {
116124
//todo 放入gopath
117125
arg := "git clone " + newProjectInfo.TplRepo + " " + getServiceDir(serviceName)
118-
cmd := osexec.Command("/bin/sh", "-c", arg)
126+
cmd := osexec.Command(syscmd, "-c", arg)
119127

120128
var buffer bytes.Buffer
121129
cmd.Stderr = &buffer
@@ -128,7 +136,7 @@ func cloneTpl(serviceName string) error {
128136

129137
func cleanGitFile(serviceName string) error {
130138
arg := "pushd " + getServiceDir(serviceName) + "&& rm -rf .git && popd"
131-
cmd := osexec.Command("/bin/sh", "-c", arg)
139+
cmd := osexec.Command(syscmd, "-c", arg)
132140

133141
var buffer bytes.Buffer
134142
cmd.Stderr = &buffer
@@ -144,7 +152,7 @@ func replaceContent(serviceName string) error {
144152
for _, item := range newProjectInfo.ReplaceContent {
145153
arg := `grep '` + item.Key + `' -rl ` + getServiceDir(serviceName) + `|xargs ` + sedI() + ` 's/` + item.Key + `/` + item.Fn(serviceName) + `/g'`
146154

147-
cmd := osexec.Command("/bin/sh", "-c", arg)
155+
cmd := osexec.Command(syscmd, "-c", arg)
148156

149157
var buffer bytes.Buffer
150158
cmd.Stderr = &buffer
@@ -166,7 +174,7 @@ func replaceFile(serviceName string) error {
166174
`&&find . -name '` + key + `.go' |awk -F "` + key + `.go" '{print $1}' |` +
167175
`xargs -I'{}' mv {}` + key + `.go {}` + serviceName + `.go&&popd`
168176

169-
cmd := osexec.Command("/bin/sh", "-c", arg)
177+
cmd := osexec.Command(syscmd, "-c", arg)
170178

171179
var buffer bytes.Buffer
172180
cmd.Stderr = &buffer
@@ -184,7 +192,7 @@ func replaceDir(serviceName string) error {
184192
`&&find . -name '` + key + `' -type d |awk -F "` + key + `" '{print $1}'| ` +
185193
`xargs -I'{}' mv {}` + key + ` {}` + serviceName + `&&popd`
186194

187-
cmd := osexec.Command("/bin/sh", "-c", arg)
195+
cmd := osexec.Command(syscmd, "-c", arg)
188196

189197
var buffer bytes.Buffer
190198
cmd.Stderr = &buffer
@@ -205,6 +213,9 @@ func sedI() string {
205213
}
206214

207215
func getServiceDir(serviceName string) string {
216+
if runtime.GOOS == "windows" {
217+
return "./" + serviceName
218+
}
208219
if strings.TrimSpace(os.Getenv("GOPATH")) != "" {
209220
return os.Getenv("GOPATH") + "/src/" + serviceName
210221
}
@@ -221,7 +232,7 @@ func newJobPro(serviceName string) {
221232

222233
tempDir := "/tmp/" + serviceName
223234
arg := "git clone " + newProjectInfo.TplRepo + " " + tempDir
224-
cmd := osexec.Command("/bin/sh", "-c", arg)
235+
cmd := osexec.Command(syscmd, "-c", arg)
225236

226237
var buffer bytes.Buffer
227238
cmd.Stderr = &buffer
@@ -233,7 +244,7 @@ func newJobPro(serviceName string) {
233244

234245
buffer.Reset()
235246
shellCmd := `mv ` + tempDir + `/clijob/jobWorker ` + serviceName + " && rm -rf " + tempDir
236-
cmd = osexec.Command("/bin/sh", "-c", shellCmd)
247+
cmd = osexec.Command(syscmd, "-c", shellCmd)
237248
output, err = cmd.Output()
238249
handlerCmdOutput(output, err, buffer)
239250
if err != nil {

cmd/start.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io/ioutil"
66
"os"
77
osexec "os/exec"
8+
"runtime"
89
"strconv"
910
"time"
1011

@@ -45,9 +46,10 @@ func start(c *cobra.Command, args []string) {
4546
return
4647
}
4748
}
48-
4949
arg := curdir + `/bin/` + serviceName
50-
50+
if runtime.GOOS == "windows" {
51+
arg = arg + ".exe"
52+
}
5153
if len(args) == 0 {
5254
args = append(args, "-p="+curdir, "-c=conf/conf.ini")
5355
} else {
@@ -56,6 +58,13 @@ func start(c *cobra.Command, args []string) {
5658
}
5759

5860
cmd := osexec.Command(arg, args...)
61+
if runtime.GOOS == "windows" {
62+
a := make([]string, 0)
63+
a = append(a, "/c")
64+
a = append(a, arg)
65+
a = append(a, args...)
66+
cmd = osexec.Command("cmd.exe", a...)
67+
}
5968
cmd.Stdout = os.Stdout
6069
cmd.Stderr = os.Stdout
6170
err = cmd.Start()
@@ -69,13 +78,11 @@ func start(c *cobra.Command, args []string) {
6978
fmt.Fprintf(os.Stdout, "启动成功pid:%s\n", pid)
7079
cmd.Wait()
7180
}
72-
7381
pinfo, _ := getProcessByPid(pid)
7482
if pinfo == "" {
7583
fmt.Fprintf(os.Stdout, "启动失败\n")
7684
return
7785
}
78-
7986
pidFile, _ := getPidFile()
8087

8188
err = common.CreateDir(curdir + "/run/")
@@ -100,7 +107,10 @@ func start(c *cobra.Command, args []string) {
100107
func getProcessByPid(pid string) (string, error) {
101108
arg := `ps aux |grep ` + pid + ` |grep -v grep`
102109

103-
cmd := osexec.Command("/bin/sh", "-c", arg)
110+
if runtime.GOOS == "windows" {
111+
arg = `tasklist|findstr ` + pid
112+
}
113+
cmd := osexec.Command(syscmd, "-c", arg)
104114

105115
output, err := cmd.Output()
106116

@@ -110,7 +120,10 @@ func getProcessByPid(pid string) (string, error) {
110120
func processExistByName(name string) (string, bool) {
111121
arg := `ps aux |grep ` + name + ` |grep -v grep`
112122

113-
cmd := osexec.Command("/bin/sh", "-c", arg)
123+
if runtime.GOOS == "windows" {
124+
arg = `tasklist|findstr ` + name
125+
}
126+
cmd := osexec.Command(syscmd, "-c", arg)
114127

115128
output, err := cmd.Output()
116129

cmd/status.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"os"
66
osexec "os/exec"
7+
"runtime"
78

89
"github.com/spf13/cobra"
910
)
@@ -27,8 +28,11 @@ func status(c *cobra.Command, args []string) {
2728
}
2829

2930
arg := `ps aux |grep ` + pid + ` |grep -v grep`
31+
if runtime.GOOS == "windows" {
32+
arg = `tasklist|findstr ` + pid
33+
}
3034

31-
cmd := osexec.Command("/bin/sh", "-c", arg)
35+
cmd := osexec.Command(syscmd, "-c", arg)
3236

3337
output, err := cmd.Output()
3438

cmd/stop.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io/ioutil"
66
"os"
77
osexec "os/exec"
8+
"runtime"
89
"strings"
910

1011
"github.com/spf13/cobra"
@@ -32,7 +33,12 @@ func stop(c *cobra.Command, args []string) {
3233
return
3334
}
3435

35-
cmd := osexec.Command("kill", pid)
36+
arg := `kill ` + pid
37+
if runtime.GOOS == "windows" {
38+
arg = `tskill ` + pid
39+
}
40+
41+
cmd := osexec.Command(syscmd, "-c", arg)
3642
cmd.Stdout = os.Stdout
3743
cmd.Stderr = os.Stdout
3844

cmd/tag.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ func upgradeVersion(c *cobra.Command, args []string) {
194194
showNextVersion(next)
195195

196196
arg := `git tag -a ` + next + ` -m "更新版本到"` + next
197-
cmd := osexec.Command("/bin/sh", "-c", arg)
197+
cmd := osexec.Command(syscmd, "-c", arg)
198198
var buffer bytes.Buffer
199199
cmd.Stderr = &buffer
200200

@@ -247,7 +247,7 @@ func getNextVersion(now []byte, arg string) (string, error) {
247247

248248
func pushToRemote(c *cobra.Command, args []string) {
249249
arg := `git push origin --tags`
250-
cmd := osexec.Command("/bin/sh", "-c", arg)
250+
cmd := osexec.Command(syscmd, "-c", arg)
251251

252252
var buffer bytes.Buffer
253253
cmd.Stderr = &buffer
@@ -282,7 +282,7 @@ func initTag(c *cobra.Command, args []string) {
282282
}
283283

284284
arg := `git tag -a v0.0.1 -m "初始化tag"`
285-
cmd := osexec.Command("/bin/sh", "-c", arg)
285+
cmd := osexec.Command(syscmd, "-c", arg)
286286

287287
var buffer bytes.Buffer
288288
cmd.Stderr = &buffer
@@ -297,7 +297,7 @@ func initTag(c *cobra.Command, args []string) {
297297
func getVersionNow() ([]byte, error) {
298298
arg := "git tag -l | sort -rV|head -n 1"
299299
//arg := "git tag -l --sort=-v:refname |head -n 1"
300-
cmd := osexec.Command("/bin/sh", "-c", arg)
300+
cmd := osexec.Command(syscmd, "-c", arg)
301301
output, err := cmd.Output()
302302

303303
return output, err
@@ -328,7 +328,7 @@ func checkVersionFormat(version []byte) error {
328328

329329
func fetch() error {
330330
arg := "git fetch -p"
331-
cmd := osexec.Command("/bin/sh", "-c", arg)
331+
cmd := osexec.Command(syscmd, "-c", arg)
332332
var buffer bytes.Buffer
333333
cmd.Stderr = &buffer
334334

@@ -347,7 +347,7 @@ func getBranch() ([]byte, error) {
347347
arg := `git branch |grep \* |awk '{print $2}'`
348348
//arg := "git symbolic-ref --short -q HEAD"
349349

350-
cmd := osexec.Command("/bin/sh", "-c", arg)
350+
cmd := osexec.Command(syscmd, "-c", arg)
351351
output, err := cmd.Output()
352352

353353
return output, err

0 commit comments

Comments
 (0)