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 }