Add more stuff to the magefiles.

main
Mari 3 years ago
parent f5f3427656
commit fe5fc0657f
  1. 1
      .idea/hexmap.iml
  2. 19
      client/magefile.go
  3. 4
      magefile.go
  4. 35
      server/magefile.go

@ -12,6 +12,7 @@
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/mage" />
<excludeFolder url="file://$MODULE_DIR$/buildtools" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

@ -1,5 +1,18 @@
// +build mage
package client
const ProtocPluginPath = "client/node_modules/.bin/protoc-gen-ts_proto"
import (
"github.com/magefile/mage/mg"
)
const ProtocPluginPath = "client/node_modules/.bin/protoc-gen-ts_proto"
type Protobuf mg.Namespace
// TODO: NPMInstall
// TODO: Protobuf:InstallTSPlugin
// TODO: Protobuf:InstallPlugins
// TODO: Protobuf:Build
// TODO: Protobuf:Clean
// TODO: Build
// TODO: Clean
// TODO: Serve

@ -3,6 +3,8 @@
package main
import (
// mage:import
// mage:import server
_ "git.reya.zone/reya/hexmap/server"
// mage:import client
_ "git.reya.zone/reya/hexmap/client"
)

@ -13,19 +13,13 @@ import (
"strings"
)
// TODO: GoGet
// TODO: Build
// TODO: Clean
func InstallZapMarshaler(ctx context.Context) error {
alreadyDone, err := build.HasExecutableInBuildtools("protoc-gen-zap-marshaler")
if err != nil {
return err
}
if alreadyDone {
return nil
}
return build.InstallGoExecutable(ctx, "github.com/kazegusuri/go-proto-zap-marshaler/protoc-gen-zap-marshaler@latest")
}
type Protobuf mg.Namespace
func InstallGoProtoc(ctx context.Context) error {
func (Protobuf) InstallGoPlugin(ctx context.Context) error {
alreadyDone, err := build.HasExecutableInBuildtools("protoc-gen-go")
if err != nil {
return err
@ -36,21 +30,22 @@ func InstallGoProtoc(ctx context.Context) error {
return build.InstallGoExecutable(ctx, "google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1")
}
func InstallProtoDeps(ctx context.Context) {
mg.CtxDeps(ctx, InstallZapMarshaler, InstallGoProtoc)
func (Protobuf) InstallPlugins(ctx context.Context) {
mg.CtxDeps(ctx, Protobuf.InstallGoPlugin)
}
type Protobuf mg.Namespace
func (Protobuf) BuildProtocolBuffers(ctx context.Context) error {
mg.CtxDeps(ctx, InstallProtoDeps)
func (Protobuf) Build(ctx context.Context) error {
mg.CtxDeps(ctx, Protobuf.Clean, Protobuf.InstallPlugins)
tooldir, err := build.GetBuildToolsDir()
if err != nil {
return err
}
pluginPathFlag := fmt.Sprintf("--plugin=%s", path.Join(tooldir, "protoc-gen-go"))
cmd := exec.CommandContext(ctx, "protoc", pluginPathFlag, "-I=proto", "--go_out=.", "--go_opt=module=git.reya.zone/reya/hexmap", "proto/action.proto", "proto/client.proto", "proto/coords.proto", "proto/map.proto", "proto/server.proto", "proto/user.proto")
goPluginPathFlag := fmt.Sprintf("--plugin=%s", path.Join(tooldir, "protoc-gen-go"))
cmd := exec.CommandContext(ctx, "protoc", goPluginPathFlag, "-I=proto", "--go_out=.", "--go_opt=module=git.reya.zone/reya/hexmap", "proto/action.proto", "proto/client.proto", "proto/coords.proto", "proto/map.proto", "proto/server.proto", "proto/user.proto")
cmd.Stderr = os.Stderr
if mg.Verbose() {
cmd.Stdout = os.Stdout
}
return cmd.Run()
}
@ -73,4 +68,4 @@ func (Protobuf) Clean(ctx context.Context) error {
}
return nil
})
}
}

Loading…
Cancel
Save