From 9280cf97151fd14269342310ad1acfb6ccd37369 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 26 Nov 2019 12:16:27 +0000 Subject: feat(buildGo): Add support for gRPC packages Introduces buildGo.grpc which is like buildGo.proto, but adds dependencies on the gRPC libraries. --- buildGo.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'buildGo.nix') diff --git a/buildGo.nix b/buildGo.nix index bf8625c1b440..fba4e18e9bce 100644 --- a/buildGo.nix +++ b/buildGo.nix @@ -72,17 +72,20 @@ let '') // { goDeps = uniqueDeps; }; # Build a Go library out of the specified protobuf definition. - proto = { name, proto, path ? name, protocFlags ? "", extraDeps ? [] }: package { + proto = { name, proto, path ? name, extraDeps ? [] }: package { inherit name path; - deps = [ goProto ] ++ extraDeps; + deps = [ protoLibs.goProto ] ++ extraDeps; srcs = lib.singleton (runCommand "goproto-${name}.pb.go" {} '' cp ${proto} ${baseNameOf proto} - ${protobuf}/bin/protoc --plugin=${goProto}/bin/protoc-gen-go \ - --go_out=${protocFlags}import_path=${baseNameOf path}:. ${baseNameOf proto} + ${protobuf}/bin/protoc --plugin=${protoLibs.goProto}/bin/protoc-gen-go \ + --go_out=plugins=grpc,import_path=${baseNameOf path}:. ${baseNameOf proto} mv *.pb.go $out ''); }; + # Build a Go library out of the specified gRPC definition. + grpc = args: proto (args // { extraDeps = [ protoLibs.goGrpc ]; }); + # Build an externally defined Go library using `go build` itself. # # Libraries built this way can be included in any standard buildGo @@ -128,5 +131,5 @@ let }; in { # Only the high-level builder functions are exposed - inherit program package proto external; + inherit program package proto grpc external; } -- cgit 1.4.1