github.com/iron-io/functions@v0.0.0-20180820112432-d59d7d1c40b2/fn/commands/images/build.go (about)

     1  package commands
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/iron-io/functions/fn/common"
     8  	"github.com/urfave/cli"
     9  )
    10  
    11  func Build() cli.Command {
    12  	cmd := Buildcmd{}
    13  	flags := append([]cli.Flag{}, cmd.flags()...)
    14  	return cli.Command{
    15  		Name:   "build",
    16  		Usage:  "build function version",
    17  		Flags:  flags,
    18  		Action: cmd.Build,
    19  	}
    20  }
    21  
    22  type Buildcmd struct {
    23  	Verbose bool
    24  }
    25  
    26  func (b *Buildcmd) flags() []cli.Flag {
    27  	return []cli.Flag{
    28  		cli.BoolFlag{
    29  			Name:        "v",
    30  			Usage:       "verbose mode",
    31  			Destination: &b.Verbose,
    32  		},
    33  	}
    34  }
    35  
    36  // build will take the found valid function and build it
    37  func (b *Buildcmd) Build(c *cli.Context) error {
    38  	verbwriter := common.Verbwriter(b.Verbose)
    39  
    40  	path, err := os.Getwd()
    41  	if err != nil {
    42  		return err
    43  	}
    44  	fn, err := common.FindFuncfile(path)
    45  	if err != nil {
    46  		return err
    47  	}
    48  
    49  	fmt.Fprintln(verbwriter, "building", fn)
    50  	ff, err := common.Buildfunc(verbwriter, fn)
    51  	if err != nil {
    52  		return err
    53  	}
    54  
    55  	fmt.Printf("Function %v built successfully.\n", ff.FullName())
    56  	return nil
    57  }