diff --git a/pkg/build/cmd/exportversion.go b/pkg/build/cmd/exportversion.go new file mode 100644 index 00000000000..afbe05114af --- /dev/null +++ b/pkg/build/cmd/exportversion.go @@ -0,0 +1,30 @@ +package main + +import ( + "os" + "path/filepath" + + "github.com/urfave/cli/v2" +) + +func ExportVersion(c *cli.Context) error { + metadata, err := GenerateMetadata(c) + if err != nil { + return err + } + + const distDir = "dist" + if err := os.RemoveAll(distDir); err != nil { + return err + } + if err := os.Mkdir(distDir, 0750); err != nil { + return err + } + + // nolint:gosec + if err := os.WriteFile(filepath.Join(distDir, "grafana.version"), []byte(metadata.GrafanaVersion), 0664); err != nil { + return err + } + + return nil +} diff --git a/pkg/build/cmd/main.go b/pkg/build/cmd/main.go index c2f6e731c79..d063d4a97d2 100644 --- a/pkg/build/cmd/main.go +++ b/pkg/build/cmd/main.go @@ -114,6 +114,11 @@ func main() { ArgsUsage: "", Action: ArgCountWrapper(1, PublishMetrics), }, + { + Name: "export-version", + Usage: "Exports version in dist/grafana.version", + Action: ExportVersion, + }, } if err := app.Run(os.Args); err != nil {