Skip to content

Commit 0b74cb9

Browse files
committed
Upgrade Go version and dependencies. Replace logrus with slog for logging
1 parent ce06f09 commit 0b74cb9

8 files changed

Lines changed: 72 additions & 42 deletions

File tree

examples/go.mod

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module examples
2+
3+
go 1.25
4+
5+
require (
6+
github.com/taobig/xcli v1.0.1
7+
github.com/urfave/cli/v3 v3.4.1
8+
)
9+
10+
require (
11+
github.com/kardianos/service v1.2.4 // indirect
12+
golang.org/x/sys v0.36.0 // indirect
13+
)

examples/go.sum

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
3+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4+
github.com/kardianos/service v1.2.4 h1:XNlGtZOYNx2u91urOdg/Kfmc+gfmuIo1Dd3rEi2OgBk=
5+
github.com/kardianos/service v1.2.4/go.mod h1:E4V9ufUuY82F7Ztlu1eN9VXWIQxg8NoLQlmFe0MtrXc=
6+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
7+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
8+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
9+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
10+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
11+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
12+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
13+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
14+
github.com/taobig/xcli v1.0.1 h1:t/CJ1nJDn1yPrmf+rPYTbD3I5tqFABWwRvndiancA3Q=
15+
github.com/taobig/xcli v1.0.1/go.mod h1:c6y0Zbk/3X0Mz5fNpE0Pr1t/pRMxPf3GylCKtbYOAJQ=
16+
github.com/urfave/cli/v3 v3.4.1 h1:1M9UOCy5bLmGnuu1yn3t3CB4rG79Rtoxuv1sPhnm6qM=
17+
github.com/urfave/cli/v3 v3.4.1/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo=
18+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
19+
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
20+
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
21+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
22+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
23+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
24+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

examples/internal/process_kill_windows.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package internal
22

33
import (
4-
"github.com/sirupsen/logrus"
4+
"log/slog"
55
"os"
66
"syscall"
77
)
@@ -24,12 +24,12 @@ func KillProcessItself() error {
2424
{ // from: github.com/kardianos/service@v1.2.2/servicetest_windows_test.go
2525
dll, err := syscall.LoadDLL("kernel32.dll")
2626
if err != nil {
27-
logrus.Errorf("LoadDLL(\"kernel32.dll\") err: %s", err)
27+
slog.Error("LoadDLL kernel32.dll failed", "error", err)
2828
return err
2929
}
3030
p, err := dll.FindProc("GenerateConsoleCtrlEvent")
3131
if err != nil {
32-
logrus.Errorf("FindProc(\"GenerateConsoleCtrlEvent\") err: %s", err)
32+
slog.Error("FindProc GenerateConsoleCtrlEvent failed", "error", err)
3333
return err
3434
}
3535
// Send the CTRL_BREAK_EVENT to a console process group that shares
@@ -38,7 +38,7 @@ func KillProcessItself() error {
3838
pid := os.Getpid()
3939
r1, _, err := p.Call(syscall.CTRL_BREAK_EVENT, uintptr(pid))
4040
if r1 == 0 {
41-
logrus.Errorf("Call(CTRL_BREAK_EVENT, %d) err: %s", pid, err)
41+
slog.Error("Call CTRL_BREAK_EVENT failed", "pid", pid, "error", err)
4242
return err
4343
}
4444
}

examples/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package main
22

33
import (
44
"context"
5+
"examples/internal"
56
"fmt"
7+
"os"
8+
69
"github.com/taobig/xcli"
7-
"github.com/taobig/xcli/examples/internal"
810
"github.com/urfave/cli/v3"
9-
"os"
1011
)
1112

1213
var (

go.mod

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
module github.com/taobig/xcli
22

3-
go 1.22
4-
5-
toolchain go1.22.12
3+
go 1.25
64

75
retract v0.0.8
86

97
require (
10-
github.com/kardianos/service v1.2.2
11-
github.com/sirupsen/logrus v1.9.3
12-
github.com/urfave/cli/v3 v3.2.0
8+
github.com/kardianos/service v1.2.4
9+
github.com/urfave/cli/v3 v3.4.1
1310
)
1411

15-
require golang.org/x/sys v0.22.0 // indirect
12+
require golang.org/x/sys v0.36.0 // indirect
13+
14+
ignore ./examples

go.sum

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,14 @@
1-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
21
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
32
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4-
github.com/kardianos/service v1.2.2 h1:ZvePhAHfvo0A7Mftk/tEzqEZ7Q4lgnR8sGz4xu1YX60=
5-
github.com/kardianos/service v1.2.2/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
3+
github.com/kardianos/service v1.2.4 h1:XNlGtZOYNx2u91urOdg/Kfmc+gfmuIo1Dd3rEi2OgBk=
4+
github.com/kardianos/service v1.2.4/go.mod h1:E4V9ufUuY82F7Ztlu1eN9VXWIQxg8NoLQlmFe0MtrXc=
65
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
76
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
8-
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
9-
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
10-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
11-
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
127
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
138
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
14-
github.com/urfave/cli/v3 v3.2.0 h1:m8WIXY0U9LCuUl5r+0fqLWDhNYWt6qvlW+GcF4EoXf8=
15-
github.com/urfave/cli/v3 v3.2.0/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo=
16-
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
17-
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
18-
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
19-
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
20-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
21-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
9+
github.com/urfave/cli/v3 v3.4.1 h1:1M9UOCy5bLmGnuu1yn3t3CB4rG79Rtoxuv1sPhnm6qM=
10+
github.com/urfave/cli/v3 v3.4.1/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo=
11+
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
12+
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
2213
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
2314
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

systemservice.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package xcli
22

33
import (
44
"context"
5+
56
"github.com/kardianos/service"
67
"github.com/urfave/cli/v3"
78
)

xcli.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import (
44
"bufio"
55
"context"
66
"fmt"
7-
"github.com/kardianos/service"
8-
"github.com/sirupsen/logrus"
9-
"github.com/urfave/cli/v3"
107
"io"
8+
"log/slog"
119
"os"
1210
"os/exec"
1311
"path/filepath"
1412
"strings"
13+
14+
"github.com/kardianos/service"
15+
"github.com/urfave/cli/v3"
1516
)
1617

1718
var DefaultStopCallback = func() error { return nil }
@@ -49,7 +50,7 @@ func (x *XCli) createSystemService(ctx context.Context, cmd *cli.Command) (servi
4950
}
5051
// 默认install service时,WorkingDirectory就是其二进制程序所在的目录。这样便于加载配置文件。
5152
workingDir := strings.Replace(dir, "\\", "/", -1)
52-
logrus.Debugf("workingDir: %s", workingDir)
53+
slog.Debug("workingDir", "dir", workingDir)
5354

5455
svcConfig := &service.Config{
5556
Name: conf.ServiceName,
@@ -230,7 +231,7 @@ func (x *XCli) Start(flags []cli.Flag, commands []*cli.Command) {
230231

231232
err = systemService.Run()
232233
if err != nil {
233-
logrus.Errorf("service Run failed, err: %v", err)
234+
slog.Error("service Run failed", "error", err)
234235
return err
235236
}
236237
return nil
@@ -239,7 +240,7 @@ func (x *XCli) Start(flags []cli.Flag, commands []*cli.Command) {
239240
}
240241

241242
if err := app.Run(context.Background(), os.Args); err != nil {
242-
logrus.Errorf("Error: %+v", err)
243+
slog.Error("app run error", "error", err)
243244
os.Exit(1)
244245
}
245246
}
@@ -252,7 +253,7 @@ func (x *XCli) controlAction(ctx context.Context, cmd *cli.Command) error {
252253
}
253254
err = service.Control(systemService, cmd.Name)
254255
if err != nil {
255-
logrus.Errorf("service %s failed, err: %v", cmd.Name, err)
256+
slog.Error("service control failed", "command", cmd.Name, "error", err)
256257
return err
257258
}
258259
return nil
@@ -264,11 +265,11 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
264265
if outputType == "StdoutPipe" {
265266
pipe, err := cmd.StdoutPipe()
266267
if err != nil {
267-
logrus.Errorf("cmd.StdoutPipe() failed with %s", err)
268+
slog.Error("StdoutPipe failed", "error", err)
268269
return err
269270
}
270271
if err = cmd.Start(); err != nil {
271-
logrus.Errorf("cmd.Start() failed with %s", err)
272+
slog.Error("cmd start failed", "error", err)
272273
return err
273274
}
274275
go func(p io.ReadCloser) {
@@ -280,7 +281,7 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
280281
}
281282
}(pipe)
282283
if err = cmd.Wait(); err != nil {
283-
logrus.Errorf("cmd.Wait() failed with %s", err)
284+
slog.Error("cmd wait failed", "error", err)
284285
return err
285286
}
286287
} else if outputType == "Stdout" {
@@ -293,7 +294,7 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
293294
//}
294295
out, err := cmd.Output()
295296
if err != nil {
296-
logrus.Errorf("cmd.Output() failed with %s", err)
297+
slog.Error("cmd output failed", "error", err)
297298
return err
298299
}
299300
fmt.Println(string(out))
@@ -308,19 +309,19 @@ func runCommand(cmd *exec.Cmd, outputType string) error {
308309
// more是一个简单的分页器,只能向下滚动,无法向上滚动,而less是more的改进版本,可以向上和向下滚动,支持更多功能。
309310
stdout, err := cmd.StdoutPipe()
310311
if err != nil {
311-
logrus.Errorf("cmd.StdoutPipe() failed with %s", err)
312+
slog.Error("StdoutPipe failed", "error", err)
312313
return err
313314
}
314315
if err = cmd.Start(); err != nil {
315-
logrus.Errorf("cmd.Start() failed with %s", err)
316+
slog.Error("cmd start failed", "error", err)
316317
return err
317318
}
318319

319320
moreCmd := exec.Command("less")
320321
moreCmd.Stdin = stdout
321322
moreCmd.Stdout = os.Stdout
322323
if err = moreCmd.Run(); err != nil {
323-
logrus.Errorf("moreCmd.Run() failed with %s", err)
324+
slog.Error("less run failed", "error", err)
324325
return err
325326
}
326327
}

0 commit comments

Comments
 (0)