mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"log"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/grafana/grafana/pkg/build/config"
 | |
| 	"github.com/grafana/grafana/pkg/build/gpg"
 | |
| 	"github.com/grafana/grafana/pkg/build/packaging"
 | |
| 	"github.com/grafana/grafana/pkg/build/syncutil"
 | |
| 	"github.com/urfave/cli/v2"
 | |
| )
 | |
| 
 | |
| func Package(c *cli.Context) error {
 | |
| 	metadata, err := GenerateMetadata(c)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	edition := config.Edition(c.String("edition"))
 | |
| 
 | |
| 	releaseMode, err := metadata.GetReleaseMode()
 | |
| 	if err != nil {
 | |
| 		return cli.NewExitError(err.Error(), 1)
 | |
| 	}
 | |
| 
 | |
| 	releaseModeConfig, err := config.GetBuildConfig(metadata.ReleaseMode.Mode)
 | |
| 	if err != nil {
 | |
| 		return cli.NewExitError(err.Error(), 1)
 | |
| 	}
 | |
| 
 | |
| 	cfg := config.Config{
 | |
| 		NumWorkers: c.Int("jobs"),
 | |
| 	}
 | |
| 	if err := gpg.LoadGPGKeys(&cfg); err != nil {
 | |
| 		return cli.Exit(err, 1)
 | |
| 	}
 | |
| 	defer gpg.RemoveGPGFiles(cfg)
 | |
| 
 | |
| 	ctx := context.Background()
 | |
| 
 | |
| 	variantStrs := strings.Split(c.String("variants"), ",")
 | |
| 	variants := []config.Variant{}
 | |
| 	for _, varStr := range variantStrs {
 | |
| 		if varStr == "" {
 | |
| 			continue
 | |
| 		}
 | |
| 
 | |
| 		variants = append(variants, config.Variant(varStr))
 | |
| 	}
 | |
| 
 | |
| 	if len(variants) == 0 {
 | |
| 		variants = config.AllVariants
 | |
| 	}
 | |
| 
 | |
| 	log.Printf("Packaging Grafana version %q, version mode %s, %s edition, variants %s", metadata.GrafanaVersion, releaseMode.Mode,
 | |
| 		edition, strings.Join(variantStrs, ","))
 | |
| 
 | |
| 	if err := gpg.Import(cfg); err != nil {
 | |
| 		return cli.Exit(err, 1)
 | |
| 	}
 | |
| 
 | |
| 	p := syncutil.NewWorkerPool(cfg.NumWorkers)
 | |
| 	defer p.Close()
 | |
| 
 | |
| 	if err := packaging.PackageGrafana(ctx, metadata.GrafanaVersion, ".", cfg, edition, variants, releaseModeConfig.PluginSignature.Sign, p); err != nil {
 | |
| 		return cli.Exit(err, 1)
 | |
| 	}
 | |
| 
 | |
| 	log.Println("Successfully packaged Grafana!")
 | |
| 	return nil
 | |
| }
 |