github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/docker/options.go (about)

     1  package docker
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gobuffalo/buffalo/runtime"
     7  	"github.com/gobuffalo/meta"
     8  )
     9  
    10  type Options struct {
    11  	App     meta.App `json:"app"`
    12  	Version string   `json:"version"`
    13  	Style   string   `json:"style"`
    14  }
    15  
    16  // Validate that options are usuable
    17  func (opts *Options) Validate() error {
    18  	if opts.App.IsZero() {
    19  		opts.App = meta.New(".")
    20  	}
    21  	if len(opts.Version) == 0 {
    22  		opts.Version = runtime.Version
    23  	}
    24  	if len(opts.Style) == 0 {
    25  		opts.Style = "multi"
    26  	}
    27  
    28  	switch opts.Style {
    29  	case "multi", "standard":
    30  	default:
    31  		return fmt.Errorf("unknown style option %s", opts.Style)
    32  	}
    33  
    34  	return nil
    35  }