diff options
author | Vincent Ambo <tazjin@google.com> | 2019-11-24T20·34+0000 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-11-24T20·34+0000 |
commit | 071babf14824aee035dd6c3ddff1957662aa7c98 (patch) | |
tree | e45fb30c89aa8f2307a90e09e538cf039a2f1b3d /example/default.nix | |
parent | d441e035aabac877948f754289b3ab028408550b (diff) |
feat(example): Add an example for how to use buildGo builders
Diffstat (limited to 'example/default.nix')
-rw-r--r-- | example/default.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/example/default.nix b/example/default.nix new file mode 100644 index 000000000000..407f55079359 --- /dev/null +++ b/example/default.nix @@ -0,0 +1,43 @@ +# Copyright 2019 Google LLC. +# SPDX-License-Identifier: Apache-2.0 + +# This file provides examples for how to use the various builder +# functions provided by `buildGo`. +# +# The features used in the example are not exhaustive, but should give +# users a quick introduction to how to use buildGo. + +let + buildGo = import ../buildGo.nix {}; + + # Example use of buildGo.package, which creates an importable Go + # package from the specified source files. + examplePackage = buildGo.package { + name = "example"; + srcs = [ + ./lib.go + ]; + }; + + # Example use of buildGo.proto, which generates a Go library from a + # Protobuf definition file. + exampleProto = buildGo.proto { + name = "exampleproto"; + proto = ./thing.proto; + }; + + # Example use of buildGo.program, which builds an executable using + # the specified name and dependencies (which in turn must have been + # created via buildGo.package etc.) +in buildGo.program { + name = "example"; + + srcs = [ + ./main.go + ]; + + deps = [ + examplePackage + exampleProto + ]; +} |