代码拉取完成,页面将自动刷新
package main
import (
"flag"
"fmt"
"os"
"strings"
)
var (
projectNamespace = flag.String("np", "", "仓库的完整命名空间 比如: github.com/namespace")
projectRepo = flag.String("repo", "kelvins-template", "仓库的名字 比如:kelvins-template")
projectKind = flag.String("kind", "", "应用的类型 比如: rpc,cron,http,queue,proto")
)
func main() {
flag.Parse()
if *projectNamespace == "" {
fmt.Fprintln(os.Stderr, "仓库的完整命名空间 比如: github.com/namespace")
return
}
if *projectRepo == "" {
fmt.Fprintln(os.Stderr, "仓库的名字 比如:kelvins-template")
return
}
if *projectKind == "" {
fmt.Fprintln(os.Stderr, "应用的类型 比如: rpc,cron,http,queue,proto")
return
}
var err error
var rootDir string
rootDir, err = os.Getwd()
if err != nil {
fmt.Fprintln(os.Stderr, "获取当前目录错误", err)
return
}
// replacer init
projectReplacer = strings.NewReplacer(signProjectNp, *projectNamespace, signProjectName, *projectRepo)
projectProto := strings.ReplaceAll(*projectRepo, "-", "_")
projectProtoReplacer = strings.NewReplacer(signProjectNameProto, projectProto)
versionReplacer = strings.NewReplacer("{version_common}", VersionCommon, "{version_kelvins}", VersionKelvins)
// gen template by kind
switch *projectKind {
case "rpc":
rpcKind := new(gRPCKind)
err = rpcKind.Gen(rootDir)
case "proto":
protoKind := new(protoKind)
err = protoKind.Gen(rootDir)
case "cron":
projectReplacer = strings.NewReplacer(signProjectNp, *projectNamespace, signProjectName, *projectRepo+"-cron")
cronKind := new(cronKind)
err = cronKind.Gen(rootDir)
case "queue":
projectReplacer = strings.NewReplacer(signProjectNp, *projectNamespace, signProjectName, *projectRepo+"-consumer")
queueKind := new(queueKind)
err = queueKind.Gen(rootDir)
case "http", "gin":
httpKind := new(ginKind)
err = httpKind.Gen(rootDir)
default:
err = fmt.Errorf("应用模板还在路上")
}
if err != nil {
fmt.Fprintln(os.Stderr, err)
if err != nil {
return
}
return
}
fmt.Fprintf(os.Stdout, "仓库:%v 类型:%v %v\n", *projectRepo, *projectKind, " 模板创建完成")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。