From 753374c148ba3160b1427a2187495f263d897499 Mon Sep 17 00:00:00 2001 From: Dmitry Shulyak Date: Mon, 26 Mar 2018 13:29:36 +0300 Subject: [PATCH] Add bundler --- cmd/bundler.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cmd/bundler.go diff --git a/cmd/bundler.go b/cmd/bundler.go new file mode 100644 index 0000000..f276f40 --- /dev/null +++ b/cmd/bundler.go @@ -0,0 +1,46 @@ +package main + +import ( + "bytes" + "flag" + "fmt" + "io" + "io/ioutil" + "os" +) + +var ( + src = flag.String("src", "web3.js", "web3.js source file") + dst = flag.String("dst", "", "destination file. leave empty to print into stdout") + pkg = flag.String("pkg", "web3js", "package of the destionation file") +) + +func main() { + flag.Parse() + data, err := ioutil.ReadFile(*src) + must(err) + b := bytes.NewBuffer([]byte{}) + fmt.Fprintf(b, "// Code is generated. DO NOT EDIT.\n\n") + fmt.Fprintf(b, "package %s\n\n", *pkg) + fmt.Fprintf(b, "// Web3CODE is a binary representation of web3js mini.\n") + fmt.Fprintf(b, "var Web3CODE = []byte{") + last := len(data) - 1 + for i, byt := range data { + fmt.Fprint(b, byt) + if i != last { + fmt.Fprint(b, ", ") + } + } + fmt.Fprintf(b, "}\n") + if *dst == "" { + io.Copy(os.Stdout, b) + } else { + must(ioutil.WriteFile(*dst, b.Bytes(), 0644)) + } +} + +func must(err error) { + if err != nil { + panic(err) + } +}