feat: add an example bazel module + go binary using the library

This is mostly so that I can add it as the test module to be used
in the bazel registry presubmit
This commit is contained in:
John Bartholomew 2025-03-16 16:10:31 +00:00
parent 2a263bf47f
commit fb07a24f45
10 changed files with 96 additions and 5 deletions

View File

@ -1 +1,2 @@
cpp-jsonnet
examples/bazel

6
.gitignore vendored
View File

@ -8,11 +8,7 @@ coverage.out
build/
dist/
gojsonnet.egg-info/
/bazel-bin
/bazel-genfiles
/bazel-go-jsonnet
/bazel-out
/bazel-testlogs
bazel-*
/dumpstdlibast
# built binaries

1
examples/bazel/.bazelrc Normal file
View File

@ -0,0 +1 @@
common --lockfile_mode=off

1
examples/bazel/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
MODULE.bazel.lock

View File

@ -0,0 +1,18 @@
load("@gazelle//:def.bzl", "gazelle")
load("@rules_go//go:def.bzl", "go_binary", "go_library")
gazelle(name = "gazelle")
go_library(
name = "use_go_jsonnet_lib",
srcs = ["use_go_jsonnet.go"],
importpath = "github.com/google/go-jsonnet/examples/bazel",
visibility = ["//visibility:private"],
deps = ["@com_github_google_go_jsonnet//:go_default_library"],
)
go_binary(
name = "use_go_jsonnet",
embed = [":use_go_jsonnet_lib"],
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,22 @@
bazel_dep(name = "gazelle", version = "0.42.0")
bazel_dep(name = "rules_go", version = "0.53.0")
bazel_dep(name = "jsonnet_go")
local_path_override(
module_name = "jsonnet_go",
path = "../..",
)
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.23.7")
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//:go.mod")
use_repo(
go_deps,
"com_github_google_go_jsonnet",
)
override_repo(
go_deps,
com_github_google_go_jsonnet = "jsonnet_go",
)

View File

@ -0,0 +1,8 @@
local Person(name='Alice') = {
name: name,
welcome: 'Hello ' + name + '!',
};
{
person1: Person(),
person2: Person('Bob'),
}

13
examples/bazel/go.mod Normal file
View File

@ -0,0 +1,13 @@
module example/go-jsonnet-using-bazel
go 1.23.7
require github.com/google/go-jsonnet v0.21.0-rc2
require (
golang.org/x/crypto v0.36.0 // indirect
golang.org/x/sys v0.31.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
replace github.com/google/go-jsonnet => ../../

12
examples/bazel/go.sum Normal file
View File

@ -0,0 +1,12 @@
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

View File

@ -0,0 +1,19 @@
package main
import (
"fmt"
gjs "github.com/google/go-jsonnet"
)
func main() {
fmt.Printf("Example using go jsonnet (%s)\n", gjs.Version())
vm := gjs.MakeVM()
out, err := vm.EvaluateFile("example.jsonnet")
if err != nil {
fmt.Printf("%v\n", err)
} else {
fmt.Printf("%s", out)
}
}