package main import ( "fmt" "git.icechen.cn/pkg/wujian_develop_tool/config" "git.icechen.cn/pkg/wujian_develop_tool/util" "os" "git.icechen.cn/pkg/wujian_develop_tool/template/service/deploy" "git.icechen.cn/pkg/wujian_develop_tool/template/service/docker/golang" "github.com/fatih/color" _ "embed" "github.com/urfave/cli/v2" ) // ActionListService Service应用列表 func ActionListService(c *cli.Context) error { if err := config.Init(c); err != nil { return err } color.Green("Service应用列表:") for _, service := range config.Config.HasService { color.Green("\t%s", service.Name) color.Green("\t\t路径:\t%s", service.Root) color.Green("\t\t类型:\t%s", service.Type) color.Green("\t\t端口:\t%s", service.Port) c := color.New(color.Bold, color.FgRed) c.EnableColor() _, err := c.Println(healthService(service)) if err != nil { return err } fmt.Print("\n") } return nil } // ActionNewService 创建Service应用 func ActionNewService(c *cli.Context) error { if err := config.Init(c); err != nil { return err } appList := c.Args().Slice() if len(appList) == 0 { appName := "" for { appName = util.ReadLineWithMessage("请输入要创建的service名称: ") if appName != "" { break } else { color.Red("应用名称不能为空!") } } appList = append(appList, appName) } for _, newApp := range appList { color.Green("正在创建[%s]Service应用...", newApp) app := config.Config.Service.GetApp(newApp) app = config.Service{ Name: newApp, Root: "app/service/" + newApp, } if util.ExistDir(app.Root) && !util.ReadBoolWithMessage(app.Root+"目录已存在,是否要覆盖app文件目录(y/n): ") { return nil } err := os.MkdirAll(app.Root, os.ModePerm) if err != nil { return err } app.AliasName = util.ReadLineWithMessage("请输入应用的简短描述(别名): ") for { app.Type = util.ReadLineWithMessage("请输入应用的类型(默认golang): ") if app.Type == "golang" || app.Type == "" { app.Type = "golang" break } else { color.Red("暂不支持: [%s]类型", app.Type) } } for { app.Port = util.ReadLineWithMessage("请输入应用暴露的端口: ") if app.Port != "" { break } else { color.Red("端口号不能为空!") } } err = deploy.GenDeploy(config.Config.Name, app) if err != nil { return err } err = golang.GenDockerfile(newApp) if err != nil { return err } err = config.Config.AppendService(app) if err != nil { return err } color.Green("[%s]Service应用创建成功!!!\n\n", newApp) } return nil } // ActionFixService 修复Service应用 func ActionFixService(c *cli.Context) error { color.Red("开发中...") return nil }