github.com/TNTworks/flogo-cli@v0.9.1-0.20220522183836-60b8a963ae00/api/builder.go (about) 1 package api 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 8 "github.com/TNTworks/flogo-cli/common" 9 "github.com/TNTworks/flogo-cli/util" 10 ) 11 12 type AppBuilder struct { 13 14 } 15 16 func (*AppBuilder) Build(project common.AppProject) error { 17 18 err := restoreMain(project) 19 if err != nil { 20 return err 21 } 22 23 err = simpleGoBuild(project) 24 if err != nil { 25 return err 26 } 27 28 return nil 29 } 30 31 32 func simpleGoBuild(project common.AppProject) error { 33 if _, err := os.Stat(project.BinDir()); err != nil { 34 if Verbose() { 35 fmt.Println("Creating 'bin' directory") 36 } 37 err = os.MkdirAll(project.BinDir(), os.ModePerm) 38 if err != nil { 39 return err 40 } 41 } 42 43 if Verbose() { 44 fmt.Println("Performing 'go build'...") 45 } 46 47 err := util.ExecCmd(exec.Command("go", "mod", "tidy") 48 if err != nil { 49 fmt.Println("Error in building", project.SrcDir()) 50 return err 51 } 52 53 err = util.ExecCmd(exec.Command("go", "build", "-o", project.Executable()), project.SrcDir()) 54 if err != nil { 55 fmt.Println("Error in building", project.SrcDir()) 56 return err 57 } 58 59 return nil 60 }