github.com/docker/app@v0.9.1-beta3.0.20210611140623-a48f773ab002/cmd/cnab-run/render.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/docker/app/internal"
     8  
     9  	"github.com/docker/app/internal/formatter"
    10  	"github.com/docker/app/internal/packager"
    11  	"github.com/docker/app/render"
    12  )
    13  
    14  func renderAction(instanceName string) error {
    15  	app, err := packager.Extract("")
    16  	// todo: merge additional compose file
    17  	if err != nil {
    18  		return err
    19  	}
    20  	defer app.Cleanup()
    21  
    22  	bndl, err := getRelocatedBundle()
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	formatDriver, ok := os.LookupEnv(internal.DockerRenderFormatEnvVar)
    28  	if !ok {
    29  		return fmt.Errorf("%q is undefined", internal.DockerRenderFormatEnvVar)
    30  	}
    31  
    32  	parameters := packager.ExtractCNABParametersValues(packager.ExtractCNABParameterMapping(app.Parameters()), os.Environ())
    33  
    34  	rendered, err := render.Render(app, parameters, bndl.RelocatedImages())
    35  	if err != nil {
    36  		return err
    37  	}
    38  	res, err := formatter.Format(rendered, formatDriver)
    39  	if err != nil {
    40  		return err
    41  	}
    42  	fmt.Print(res)
    43  
    44  	return nil
    45  }