The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/pkg/build/opts.go

66 lines
2.0 KiB

package build
import (
"flag"
"runtime"
"strings"
)
// BuildOpts are options provided to the build step
type BuildOpts struct {
goarch string
goos string
gocc string
cgo bool
libc string
pkgArch string
version string
buildTags []string
// deb & rpm does not support semver so have to handle their version a little differently
race bool
includeBuildID bool
buildID string
isDev bool
enterprise bool
skipRpmGen bool
skipDebGen bool
printGenVersion bool
}
// BuildOptsFromFlags reads the cmd args to assemble a BuildOpts object. This function calls flag.Parse()
func BuildOptsFromFlags() BuildOpts {
opts := BuildOpts{}
var buildIDRaw string
var buildTagsRaw string
flag.StringVar(&opts.goarch, "goarch", runtime.GOARCH, "GOARCH")
flag.StringVar(&opts.goos, "goos", runtime.GOOS, "GOOS")
flag.StringVar(&opts.gocc, "cc", "", "CC")
flag.StringVar(&opts.libc, "libc", "", "LIBC")
flag.StringVar(&buildTagsRaw, "build-tags", "", "Sets custom build tags")
flag.BoolVar(&opts.cgo, "cgo-enabled", false, "Enable cgo")
flag.StringVar(&opts.pkgArch, "pkg-arch", "", "PKG ARCH")
flag.BoolVar(&opts.race, "race", false, "Use race detector")
flag.BoolVar(&opts.includeBuildID, "includeBuildID", true, "IncludeBuildID in package name")
flag.BoolVar(&opts.enterprise, "enterprise", false, "Build enterprise version of Grafana")
flag.StringVar(&buildIDRaw, "buildID", "0", "Build ID from CI system")
flag.BoolVar(&opts.isDev, "dev", false, "optimal for development, skips certain steps")
flag.BoolVar(&opts.skipRpmGen, "skipRpm", false, "skip rpm package generation (default: false)")
flag.BoolVar(&opts.skipDebGen, "skipDeb", false, "skip deb package generation (default: false)")
flag.BoolVar(&opts.printGenVersion, "gen-version", false, "generate Grafana version and output (default: false)")
flag.Parse()
opts.buildID = shortenBuildID(buildIDRaw)
if len(buildTagsRaw) > 0 {
opts.buildTags = strings.Split(buildTagsRaw, ",")
}
if opts.pkgArch == "" {
opts.pkgArch = opts.goarch
}
return opts
}