12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package commands
- import (
- "fmt"
- "github.com/kardianos/service"
- "github.com/sirupsen/logrus"
- "github.com/urfave/cli"
- )
- var logger service.Logger
- type program struct {
- ctx *cli.Context
- }
- func (p *program) Start(s service.Service) error {
- //go p.run()
- return nil
- }
- func (p *program) Stop(s service.Service) error {
- // Stop should not block. Return with a few seconds.
- return nil
- }
- // CmdService cli 命令
- var CmdService = cli.Command{
- Name: "service",
- Usage: "./pbx-api-gin service",
- Description: "PBX API install/uninstall",
- Action: runService,
- Flags: []cli.Flag{
- cli.StringFlag{Name: "action, a", Usage: "install/uninstall/start/stop"},
- cli.StringFlag{Name: "config, c", Usage: "配置文件路径"},
- cli.Int64Flag{Name: "port, p", Usage: "默认绑定端口 8080", Value: 8080},
- cli.StringFlag{Name: "host", Usage: "默认绑定地址 0.0.0.0", Value: "0.0.0.0"},
- },
- }
- func runService(ctx *cli.Context) {
- svcConfig := &service.Config{
- Name: "PBX-API",
- DisplayName: "PBX-API",
- Description: "PBX-API as service.",
- Arguments: []string{"--config", ctx.String("config")},
- }
- prg := &program{
- ctx: ctx,
- }
- s, err := service.New(prg, svcConfig)
- if err != nil {
- logrus.Fatal(err)
- }
- logger, err = s.Logger(nil)
- if err != nil {
- logrus.Fatal(err)
- }
- switch ctx.String("action") {
- case "install":
- if !ctx.IsSet("config") {
- fmt.Print("install must set config path, please by -config set")
- return
- }
- err = s.Install()
- if err != nil {
- fmt.Println("install err", err)
- } else {
- fmt.Println("install success")
- }
- return
- case "uninstall":
- err = s.Uninstall()
- if err != nil {
- fmt.Println("Uninstall err", err)
- } else {
- fmt.Println("Uninstall success")
- }
- return
- case "start":
- s.Start()
- return
- case "stop":
- s.Stop()
- return
- }
- err = s.Run()
- if err != nil {
- logger.Error(err)
- }
- }
|