buildconstants

command module
v0.0.0-...-3a7febf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2021 License: MIT Imports: 11 Imported by: 0

README

buildconstants

for putting build info (and other compile-time values) in Go constants

Sometimes it can be useful to include constants that were available at compile-time, the build number, git branch, etc. This utility will generate a go file with constants that are the output of various commands. While you could do something similar with linker flags, this is intended for constants (and doesn't add args to your build command).

The goal is to be able to include this in a go generate comment so the file will be automatically created as necessary.

It does include a constant MustRunBuildConstants so that the file with the go generate statement can be used to force a useful compiler error

Example of using with go generate

example.go:

//go:generate buildconstants

// this will generate a compiler error to remind you to run it
var _ = MustRunBuildConstants 

Example:

Given a text file with shell commands, like so:

GOVERSION = go version
BUILD_NUMBER = ${BUILD_NUMBER}

Running go generate before building will evaluate the commands and variables in the shell.

This will be used to generate something like:

package currentPackage

const (
    GOVERSION = "go version go1.6.2 linux/amd64"
)

Which then allows you to use currentPackage.GOVERSION in your code.

Arguments

-o output file name (writes to stdout if not specified)
-package the package the file will be in (defaults to current package)
-i input file of commands 

Note:

Don't use this to put date or time related data in constants, your builds should still be reproducible, which is necessary for using tools like bazel.

TODO:

Check against newer versions

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL