github.com/arieschain/arieschain@v0.0.0-20191023063405-37c074544356/cmd/evm/compiler.go (about) 1 2 package main 3 4 import ( 5 "errors" 6 "fmt" 7 "io/ioutil" 8 9 "github.com/quickchainproject/quickchain/cmd/evm/internal/compiler" 10 11 cli "gopkg.in/urfave/cli.v1" 12 ) 13 14 var compileCommand = cli.Command{ 15 Action: compileCmd, 16 Name: "compile", 17 Usage: "compiles easm source to evm binary", 18 ArgsUsage: "<file>", 19 } 20 21 func compileCmd(ctx *cli.Context) error { 22 debug := ctx.GlobalBool(DebugFlag.Name) 23 24 if len(ctx.Args().First()) == 0 { 25 return errors.New("filename required") 26 } 27 28 fn := ctx.Args().First() 29 src, err := ioutil.ReadFile(fn) 30 if err != nil { 31 return err 32 } 33 34 bin, err := compiler.Compile(fn, src, debug) 35 if err != nil { 36 return err 37 } 38 fmt.Println(bin) 39 return nil 40 }