|
@@ -5,38 +5,33 @@
|
|
|
package v1
|
|
|
|
|
|
import (
|
|
|
- "github.com/SongZihuan/BackendServerTemplate/src/global"
|
|
|
- "github.com/SongZihuan/BackendServerTemplate/src/logger"
|
|
|
- "github.com/SongZihuan/BackendServerTemplate/src/logger/loglevel"
|
|
|
- "github.com/SongZihuan/BackendServerTemplate/src/utils/consoleutils"
|
|
|
+ "github.com/SongZihuan/BackendServerTemplate/src/cmd/globalmain"
|
|
|
"github.com/SongZihuan/BackendServerTemplate/src/utils/exitutils"
|
|
|
"github.com/kardianos/service"
|
|
|
- "os"
|
|
|
- "strings"
|
|
|
+ "github.com/spf13/cobra"
|
|
|
)
|
|
|
|
|
|
-func MainV1() (exitCode exitutils.ExitCode) {
|
|
|
+func MainV1(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
var err error
|
|
|
|
|
|
- err = consoleutils.SetConsoleCPSafe(consoleutils.CodePageUTF8)
|
|
|
+ err = globalmain.PreRun()
|
|
|
if err != nil {
|
|
|
- return exitutils.InitFailedErrorForWin32ConsoleModule(err.Error())
|
|
|
+ return err
|
|
|
}
|
|
|
+ defer globalmain.PostRun()
|
|
|
|
|
|
- err = logger.InitBaseLogger(loglevel.LevelDebug, true, nil, nil, nil, nil)
|
|
|
+ err = initServiceConfig()
|
|
|
if err != nil {
|
|
|
- return exitutils.InitFailedErrorForLoggerModule(err.Error())
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
}
|
|
|
- defer logger.CloseLogger()
|
|
|
- defer logger.Recover()
|
|
|
|
|
|
// 定义服务配置
|
|
|
svcConfig := &service.Config{
|
|
|
- Name: global.ServiceConfig.Name,
|
|
|
- DisplayName: global.ServiceConfig.DisplayName,
|
|
|
- Description: global.ServiceConfig.Describe,
|
|
|
- Arguments: global.ServiceConfig.ArgumentList,
|
|
|
- EnvVars: global.ServiceConfig.EnvSetList,
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
}
|
|
|
|
|
|
prg := NewProgram()
|
|
@@ -45,56 +40,196 @@ func MainV1() (exitCode exitutils.ExitCode) {
|
|
|
return exitutils.InitFailedError("Service New", err.Error())
|
|
|
}
|
|
|
|
|
|
- // 解析命令行参数
|
|
|
- if len(os.Args) > 1 {
|
|
|
- cmd := os.Args[1]
|
|
|
- switch strings.ToLower(cmd) {
|
|
|
- case global.Args1Install:
|
|
|
- // 安装服务
|
|
|
- err = s.Install()
|
|
|
- if err != nil {
|
|
|
- return exitutils.InitFailedError("Service Install", err.Error())
|
|
|
- }
|
|
|
-
|
|
|
- return exitutils.SuccessExitSimple("Service Install Success")
|
|
|
- case global.Args1Uninstall1, global.Args1Uninstall2:
|
|
|
- // 卸载服务
|
|
|
- err = s.Uninstall()
|
|
|
- if err != nil {
|
|
|
- return exitutils.InitFailedError("Service Remove", err.Error())
|
|
|
- }
|
|
|
-
|
|
|
- return exitutils.SuccessExitSimple("Service Remove Success")
|
|
|
- case global.Args1Start:
|
|
|
- // 启动服务
|
|
|
- err = s.Start()
|
|
|
- if err != nil {
|
|
|
- return exitutils.InitFailedError("Service Start", err.Error())
|
|
|
- }
|
|
|
-
|
|
|
- return exitutils.SuccessExitSimple("Service Start Success")
|
|
|
- case global.Args1Stop:
|
|
|
- // 停止服务
|
|
|
- err = s.Stop()
|
|
|
- if err != nil {
|
|
|
- return exitutils.InitFailedError("Service Stop", err.Error())
|
|
|
- }
|
|
|
-
|
|
|
- return exitutils.SuccessExitSimple("Service Stop Success")
|
|
|
- case global.Args1Restart:
|
|
|
- // 重启服务
|
|
|
- err = s.Restart()
|
|
|
- if err != nil {
|
|
|
- return exitutils.InitFailedError("Service Restart", err.Error())
|
|
|
- }
|
|
|
-
|
|
|
- return exitutils.SuccessExitSimple("Service Restart Success")
|
|
|
- default:
|
|
|
- // 正常运行服务
|
|
|
- // pass
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
_ = s.Run()
|
|
|
return prg.ExitCode()
|
|
|
}
|
|
|
+
|
|
|
+func MainV1Install(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
+ var err error
|
|
|
+
|
|
|
+ err = globalmain.PreRun()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer globalmain.PostRun()
|
|
|
+
|
|
|
+ err = initInstallServiceConfig(args)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义服务配置
|
|
|
+ svcConfig := &service.Config{
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
+ }
|
|
|
+
|
|
|
+ prg := NewProgram()
|
|
|
+ s, err := service.New(prg, svcConfig)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service New", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 安装服务
|
|
|
+ err = s.Install()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service Install", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return exitutils.SuccessExitSimple("Service Install Success")
|
|
|
+}
|
|
|
+
|
|
|
+func MainV1UnInstall(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
+ var err error
|
|
|
+
|
|
|
+ err = globalmain.PreRun()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer globalmain.PostRun()
|
|
|
+
|
|
|
+ err = initServiceConfig()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义服务配置
|
|
|
+ svcConfig := &service.Config{
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
+ }
|
|
|
+
|
|
|
+ prg := NewProgram()
|
|
|
+ s, err := service.New(prg, svcConfig)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service New", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 卸载服务
|
|
|
+ err = s.Uninstall()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service Remove", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return exitutils.SuccessExitSimple("Service Remove Success")
|
|
|
+}
|
|
|
+
|
|
|
+func MainV1Start(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
+ var err error
|
|
|
+
|
|
|
+ err = globalmain.PreRun()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer globalmain.PostRun()
|
|
|
+
|
|
|
+ err = initServiceConfig()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义服务配置
|
|
|
+ svcConfig := &service.Config{
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
+ }
|
|
|
+
|
|
|
+ prg := NewProgram()
|
|
|
+ s, err := service.New(prg, svcConfig)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service New", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 启动服务
|
|
|
+ err = s.Start()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service Start", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return exitutils.SuccessExitSimple("Service Start Success")
|
|
|
+}
|
|
|
+
|
|
|
+func MainV1Stop(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
+ var err error
|
|
|
+
|
|
|
+ err = globalmain.PreRun()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer globalmain.PostRun()
|
|
|
+
|
|
|
+ err = initServiceConfig()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义服务配置
|
|
|
+ svcConfig := &service.Config{
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
+ }
|
|
|
+
|
|
|
+ prg := NewProgram()
|
|
|
+ s, err := service.New(prg, svcConfig)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service New", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 停止服务
|
|
|
+ err = s.Stop()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service Stop", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return exitutils.SuccessExitSimple("Service Stop Success")
|
|
|
+}
|
|
|
+
|
|
|
+func MainV1Restart(cmd *cobra.Command, args []string) (exitCode error) {
|
|
|
+ var err error
|
|
|
+
|
|
|
+ err = globalmain.PreRun()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ defer globalmain.PostRun()
|
|
|
+
|
|
|
+ err = initServiceConfig()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("service config", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义服务配置
|
|
|
+ svcConfig := &service.Config{
|
|
|
+ Name: serviceConfig.Name,
|
|
|
+ DisplayName: serviceConfig.DisplayName,
|
|
|
+ Description: serviceConfig.Describe,
|
|
|
+ Arguments: serviceConfig.ArgumentList,
|
|
|
+ EnvVars: serviceConfig.EnvSetList,
|
|
|
+ }
|
|
|
+
|
|
|
+ prg := NewProgram()
|
|
|
+ s, err := service.New(prg, svcConfig)
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service New", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 重启服务
|
|
|
+ err = s.Restart()
|
|
|
+ if err != nil {
|
|
|
+ return exitutils.InitFailedError("Service Restart", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return exitutils.SuccessExitSimple("Service Restart Success")
|
|
|
+}
|