github.com/iron-io/functions@v0.0.0-20180820112432-d59d7d1c40b2/fn/langs/java.go (about) 1 package langs 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 ) 8 9 type JavaLangHelper struct { 10 BaseHelper 11 } 12 13 func (lh *JavaLangHelper) Entrypoint() string { 14 return "java -cp lib/*:. Func" 15 } 16 17 func (lh *JavaLangHelper) HasPreBuild() bool { 18 return true 19 } 20 21 // PreBuild for Go builds the binary so the final image can be as small as possible 22 func (lh *JavaLangHelper) PreBuild() error { 23 wd, err := os.Getwd() 24 if err != nil { 25 return err 26 } 27 28 cmd := exec.Command( 29 "docker", "run", 30 "--rm", "-v", 31 wd+":/java", "-w", "/java", "iron/java:dev", 32 "/bin/sh", "-c", "javac -cp lib/*:. *.java", 33 ) 34 cmd.Stderr = os.Stderr 35 cmd.Stdout = os.Stdout 36 if err := cmd.Run(); err != nil { 37 return fmt.Errorf("error running docker build: %v", err) 38 } 39 return nil 40 } 41 42 func (lh *JavaLangHelper) AfterBuild() error { 43 return nil 44 }