diff options
author | Vincent Ambo <tazjin@google.com> | 2019-12-19T15·24+0000 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-12-19T15·24+0000 |
commit | e996141d2ea24da382b8702e974f2b3baa5a6135 (patch) | |
tree | 92801e051eeb8d1d88c61a97ae4da3fb7a226099 /overrides/buildGo/example | |
parent | 11865364acaa4b03124c6beb73f6b7a18776eae6 (diff) | |
parent | a8fbdc52c2d7170bc8b144bef9d522bef9f0d815 (diff) |
merge(buildGo): Integrate buildGo.nix into depot r/202
Diffstat (limited to 'overrides/buildGo/example')
-rw-r--r-- | overrides/buildGo/example/default.nix | 47 | ||||
-rw-r--r-- | overrides/buildGo/example/lib.go | 9 | ||||
-rw-r--r-- | overrides/buildGo/example/main.go | 25 | ||||
-rw-r--r-- | overrides/buildGo/example/thing.proto | 10 |
4 files changed, 91 insertions, 0 deletions
diff --git a/overrides/buildGo/example/default.nix b/overrides/buildGo/example/default.nix new file mode 100644 index 000000000000..5abed1fbbcb5 --- /dev/null +++ b/overrides/buildGo/example/default.nix @@ -0,0 +1,47 @@ +# 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 + ]; + + x_defs = { + "main.Flag" = "successfully"; + }; +} diff --git a/overrides/buildGo/example/lib.go b/overrides/buildGo/example/lib.go new file mode 100644 index 000000000000..8a61370e994c --- /dev/null +++ b/overrides/buildGo/example/lib.go @@ -0,0 +1,9 @@ +// Copyright 2019 Google LLC. +// SPDX-License-Identifier: Apache-2.0 + +package example + +// UUID returns a totally random, carefully chosen UUID +func UUID() string { + return "3640932f-ad40-4bc9-b45d-f504a0f5910a" +} diff --git a/overrides/buildGo/example/main.go b/overrides/buildGo/example/main.go new file mode 100644 index 000000000000..bbcedbff8726 --- /dev/null +++ b/overrides/buildGo/example/main.go @@ -0,0 +1,25 @@ +// Copyright 2019 Google LLC. +// SPDX-License-Identifier: Apache-2.0 +// +// Package main provides a tiny example program for the Bazel-style +// Nix build system for Go. + +package main + +import ( + "example" + "exampleproto" + "fmt" +) + +var Flag string = "unsuccessfully" + +func main() { + thing := exampleproto.Thing{ + Id: example.UUID(), + KindOfThing: "test thing", + } + + fmt.Printf("The thing is a %s with ID %q\n", thing.Id, thing.KindOfThing) + fmt.Printf("The flag has been %s set\n", Flag) +} diff --git a/overrides/buildGo/example/thing.proto b/overrides/buildGo/example/thing.proto new file mode 100644 index 000000000000..0cb34124dfb9 --- /dev/null +++ b/overrides/buildGo/example/thing.proto @@ -0,0 +1,10 @@ +// Copyright 2019 Google LLC. +// SPDX-License-Identifier: Apache-2.0 + +syntax = "proto3"; +package exampleProto; + +message Thing { + string id = 1; + string kind_of_thing = 2; +} |