service

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 25, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CMD = func() *cli.Command {

	var name string    // 名称
	var addr string    // 监听地址
	var instanceID int // 实例ID

	return &cli.Command{
		Name:  "service",
		Usage: "create a gPRC service",
		Action: func(ctx *cli.Context) error {
			if name == "" {
				return errors.New("must a name")
			}

			if err := os.MkdirAll(filepath.Join("internal", "pb", "proto"), os.ModePerm); err != nil {
				return err
			}

			if err := createProtoFile(name); err != nil {
				return err
			}

			protocCmd := exec.Command("protoc", "--go_out=./internal/", "--go-grpc_out=./internal/", fmt.Sprintf("./internal/pb/proto/%s.service.proto", name))
			_, err := protocCmd.Output()
			if err != nil {
				return err
			}

			if err := os.MkdirAll(filepath.Join("internal", "service", name), os.ModePerm); err != nil {
				return err
			}
			if err := os.MkdirAll(filepath.Join("internal", "service", name, "server"), os.ModePerm); err != nil {
				return err
			}
			if err := os.MkdirAll(filepath.Join("internal", "service", name, "client"), os.ModePerm); err != nil {
				return err
			}

			if err := createMainFile(name, addr, instanceID); err != nil {
				return err
			}

			if err := createServerFile(name); err != nil {
				return err
			}

			if err := createClientFile(name); err != nil {
				return err
			}

			gomodCmd := exec.Command("go", "mod", "tidy")
			_, err = gomodCmd.Output()
			if err != nil {
				return err
			}

			return nil
		},
		Flags: []cli.Flag{
			&cli.StringFlag{
				Name:        "name, n",
				Usage:       "game server name",
				Destination: &name,
			},
			&cli.StringFlag{
				Name:        "addr, a",
				Usage:       "game server listen address",
				Destination: &addr,
				Value:       "127.0.0.1:8080",
			},
			&cli.IntFlag{
				Name:        "id, i",
				Usage:       "game server intance id",
				Destination: &instanceID,
				Value:       1,
			},
		},
	}
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL