Add more stuff to the magefiles.

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

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

@ -1,5 +1,18 @@
// +build mage
package client package client
import (
"github.com/magefile/mage/mg"
)
const ProtocPluginPath = "client/node_modules/.bin/protoc-gen-ts_proto" 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 package main
import ( import (
// mage:import // mage:import server
_ "git.reya.zone/reya/hexmap/server" _ "git.reya.zone/reya/hexmap/server"
// mage:import client
_ "git.reya.zone/reya/hexmap/client"
) )

@ -13,19 +13,13 @@ import (
"strings" "strings"
) )
// TODO: GoGet
// TODO: Build
// TODO: Clean
func InstallZapMarshaler(ctx context.Context) error { type Protobuf mg.Namespace
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")
}
func InstallGoProtoc(ctx context.Context) error { func (Protobuf) InstallGoPlugin(ctx context.Context) error {
alreadyDone, err := build.HasExecutableInBuildtools("protoc-gen-go") alreadyDone, err := build.HasExecutableInBuildtools("protoc-gen-go")
if err != nil { if err != nil {
return err 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") return build.InstallGoExecutable(ctx, "google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1")
} }
func InstallProtoDeps(ctx context.Context) { func (Protobuf) InstallPlugins(ctx context.Context) {
mg.CtxDeps(ctx, InstallZapMarshaler, InstallGoProtoc) mg.CtxDeps(ctx, Protobuf.InstallGoPlugin)
} }
type Protobuf mg.Namespace func (Protobuf) Build(ctx context.Context) error {
mg.CtxDeps(ctx, Protobuf.Clean, Protobuf.InstallPlugins)
func (Protobuf) BuildProtocolBuffers(ctx context.Context) error {
mg.CtxDeps(ctx, InstallProtoDeps)
tooldir, err := build.GetBuildToolsDir() tooldir, err := build.GetBuildToolsDir()
if err != nil { if err != nil {
return err return err
} }
pluginPathFlag := fmt.Sprintf("--plugin=%s", path.Join(tooldir, "protoc-gen-go")) goPluginPathFlag := 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") 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 cmd.Stderr = os.Stderr
if mg.Verbose() {
cmd.Stdout = os.Stdout
}
return cmd.Run() return cmd.Run()
} }

Loading…
Cancel
Save