mirror of
https://github.com/go-kratos/kratos.git
synced 2025-01-26 03:52:12 +02:00
Merge pull request #185 from captainblue2013/master
feat: 创建项目支持 -m 参数,可以自定义 go mod init 时作为参数的 module name
This commit is contained in:
commit
a191f4ffad
@ -35,6 +35,11 @@ func main() {
|
|||||||
Usage: "whether to use protobuf for create project",
|
Usage: "whether to use protobuf for create project",
|
||||||
Destination: &p.WithGRPC,
|
Destination: &p.WithGRPC,
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "m",
|
||||||
|
Usage: "project module name for create project, for `go mod init`",
|
||||||
|
Destination: &p.ModuleName,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Action: runNew,
|
Action: runNew,
|
||||||
},
|
},
|
||||||
|
@ -14,6 +14,11 @@ func runNew(ctx *cli.Context) error {
|
|||||||
return errors.New("required project name")
|
return errors.New("required project name")
|
||||||
}
|
}
|
||||||
p.Name = ctx.Args()[0]
|
p.Name = ctx.Args()[0]
|
||||||
|
|
||||||
|
if p.ModuleName == "" {
|
||||||
|
p.ModuleName = p.Name
|
||||||
|
}
|
||||||
|
|
||||||
if p.Path != "" {
|
if p.Path != "" {
|
||||||
p.Path = path.Join(p.Path, p.Name)
|
p.Path = path.Join(p.Path, p.Name)
|
||||||
} else {
|
} else {
|
||||||
@ -26,6 +31,7 @@ func runNew(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
fmt.Printf("Project: %s\n", p.Name)
|
fmt.Printf("Project: %s\n", p.Name)
|
||||||
fmt.Printf("Owner: %s\n", p.Owner)
|
fmt.Printf("Owner: %s\n", p.Owner)
|
||||||
|
fmt.Printf("Module Name: %s\n", p.ModuleName)
|
||||||
fmt.Printf("WithGRPC: %t\n", p.WithGRPC)
|
fmt.Printf("WithGRPC: %t\n", p.WithGRPC)
|
||||||
fmt.Printf("Directory: %s\n\n", p.Path)
|
fmt.Printf("Directory: %s\n\n", p.Path)
|
||||||
fmt.Println("The application has been created.")
|
fmt.Println("The application has been created.")
|
||||||
|
@ -11,11 +11,12 @@ import (
|
|||||||
|
|
||||||
// project project config
|
// project project config
|
||||||
type project struct {
|
type project struct {
|
||||||
Name string
|
Name string
|
||||||
Owner string
|
Owner string
|
||||||
Path string
|
Path string
|
||||||
WithGRPC bool
|
WithGRPC bool
|
||||||
Here bool
|
Here bool
|
||||||
|
ModuleName string // 支持项目的自定义module名 (go.mod init)
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -36,6 +37,7 @@ const (
|
|||||||
_tplTypeModel
|
_tplTypeModel
|
||||||
_tplTypeGRPCServer
|
_tplTypeGRPCServer
|
||||||
_tplTypeGomod
|
_tplTypeGomod
|
||||||
|
_tplTypeAPIGogen
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -78,6 +80,7 @@ var (
|
|||||||
_tplTypeHTTPToml: _tplHTTPToml,
|
_tplTypeHTTPToml: _tplHTTPToml,
|
||||||
_tplTypeModel: _tplModel,
|
_tplTypeModel: _tplModel,
|
||||||
_tplTypeGomod: _tplGoMod,
|
_tplTypeGomod: _tplGoMod,
|
||||||
|
_tplTypeAPIGogen: _tplGogen,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -85,6 +88,7 @@ func create() (err error) {
|
|||||||
if p.WithGRPC {
|
if p.WithGRPC {
|
||||||
files[_tplTypeGRPCServer] = "/internal/server/grpc/server.go"
|
files[_tplTypeGRPCServer] = "/internal/server/grpc/server.go"
|
||||||
files[_tplTypeAPIProto] = "/api/api.proto"
|
files[_tplTypeAPIProto] = "/api/api.proto"
|
||||||
|
files[_tplTypeAPIGogen] = "/api/generate.go"
|
||||||
tpls[_tplTypeHTTPServer] = _tplPBHTTPServer
|
tpls[_tplTypeHTTPServer] = _tplPBHTTPServer
|
||||||
tpls[_tplTypeGRPCServer] = _tplGRPCServer
|
tpls[_tplTypeGRPCServer] = _tplGRPCServer
|
||||||
tpls[_tplTypeGRPCToml] = _tplGRPCToml
|
tpls[_tplTypeGRPCToml] = _tplGRPCToml
|
||||||
|
@ -72,8 +72,8 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"{{.Name}}/internal/server/http"
|
"{{.ModuleName}}/internal/server/http"
|
||||||
"{{.Name}}/internal/service"
|
"{{.ModuleName}}/internal/service"
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
"github.com/bilibili/kratos/pkg/log"
|
"github.com/bilibili/kratos/pkg/log"
|
||||||
)
|
)
|
||||||
@ -122,9 +122,9 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"{{.Name}}/internal/server/grpc"
|
"{{.ModuleName}}/internal/server/grpc"
|
||||||
"{{.Name}}/internal/server/http"
|
"{{.ModuleName}}/internal/server/http"
|
||||||
"{{.Name}}/internal/service"
|
"{{.ModuleName}}/internal/service"
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
"github.com/bilibili/kratos/pkg/log"
|
"github.com/bilibili/kratos/pkg/log"
|
||||||
)
|
)
|
||||||
@ -284,7 +284,7 @@ func (d *dao) pingRedis(ctx context.Context) (err error) {
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"{{.Name}}/internal/dao"
|
"{{.ModuleName}}/internal/dao"
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -324,8 +324,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
pb "{{.Name}}/api"
|
pb "{{.ModuleName}}/api"
|
||||||
"{{.Name}}/internal/dao"
|
"{{.ModuleName}}/internal/dao"
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
|
|
||||||
"github.com/golang/protobuf/ptypes/empty"
|
"github.com/golang/protobuf/ptypes/empty"
|
||||||
@ -381,8 +381,8 @@ func (s *Service) Close() {
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"{{.Name}}/internal/model"
|
"{{.ModuleName}}/internal/model"
|
||||||
"{{.Name}}/internal/service"
|
"{{.ModuleName}}/internal/service"
|
||||||
|
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
"github.com/bilibili/kratos/pkg/log"
|
"github.com/bilibili/kratos/pkg/log"
|
||||||
@ -442,9 +442,9 @@ func howToStart(c *bm.Context) {
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
pb "{{.Name}}/api"
|
pb "{{.ModuleName}}/api"
|
||||||
"{{.Name}}/internal/model"
|
"{{.ModuleName}}/internal/model"
|
||||||
"{{.Name}}/internal/service"
|
"{{.ModuleName}}/internal/service"
|
||||||
|
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
"github.com/bilibili/kratos/pkg/log"
|
"github.com/bilibili/kratos/pkg/log"
|
||||||
@ -542,7 +542,7 @@ message HelloResp {
|
|||||||
type Kratos struct {
|
type Kratos struct {
|
||||||
Hello string
|
Hello string
|
||||||
}`
|
}`
|
||||||
_tplGoMod = `module {{.Name}}
|
_tplGoMod = `module {{.ModuleName}}
|
||||||
|
|
||||||
go 1.12
|
go 1.12
|
||||||
|
|
||||||
@ -573,8 +573,8 @@ replace (
|
|||||||
_tplGRPCServer = `package grpc
|
_tplGRPCServer = `package grpc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
pb "{{.Name}}/api"
|
pb "{{.ModuleName}}/api"
|
||||||
"{{.Name}}/internal/service"
|
"{{.ModuleName}}/internal/service"
|
||||||
"github.com/bilibili/kratos/pkg/conf/paladin"
|
"github.com/bilibili/kratos/pkg/conf/paladin"
|
||||||
"github.com/bilibili/kratos/pkg/net/rpc/warden"
|
"github.com/bilibili/kratos/pkg/net/rpc/warden"
|
||||||
)
|
)
|
||||||
@ -597,5 +597,9 @@ func New(svc *service.Service) *warden.Server {
|
|||||||
}
|
}
|
||||||
return ws
|
return ws
|
||||||
}
|
}
|
||||||
|
`
|
||||||
|
_tplGogen = `package api
|
||||||
|
|
||||||
|
//go:generate kratos tool protoc --swagger --grpc --bm api.proto
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user