diff options
author | Wim <wim@42.be> | 2019-04-06 22:18:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-06 22:18:25 +0200 |
commit | 115d20373c21b107a428a55247c64f900e116038 (patch) | |
tree | c7299b3d3be2a48c0f2d5bfbd856cbd1b27d2e55 /vendor/github.com/d5/tengo/stdlib/gensrcmods.go | |
parent | cdf33e5748c110e12097130bdb44637e3d14b229 (diff) | |
download | matterbridge-msglm-115d20373c21b107a428a55247c64f900e116038.tar.gz matterbridge-msglm-115d20373c21b107a428a55247c64f900e116038.tar.bz2 matterbridge-msglm-115d20373c21b107a428a55247c64f900e116038.zip |
Update tengo vendor and load the stdlib. Fixes #789 (#792)
Diffstat (limited to 'vendor/github.com/d5/tengo/stdlib/gensrcmods.go')
-rw-r--r-- | vendor/github.com/d5/tengo/stdlib/gensrcmods.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/github.com/d5/tengo/stdlib/gensrcmods.go b/vendor/github.com/d5/tengo/stdlib/gensrcmods.go new file mode 100644 index 00000000..fada66bd --- /dev/null +++ b/vendor/github.com/d5/tengo/stdlib/gensrcmods.go @@ -0,0 +1,53 @@ +// +build ignore + +package main + +import ( + "bytes" + "io/ioutil" + "log" + "regexp" + "strconv" +) + +var tengoModFileRE = regexp.MustCompile(`^srcmod_(\w+).tengo$`) + +func main() { + modules := make(map[string]string) + + // enumerate all Tengo module files + files, err := ioutil.ReadDir(".") + if err != nil { + log.Fatal(err) + } + for _, file := range files { + m := tengoModFileRE.FindStringSubmatch(file.Name()) + if m != nil { + modName := m[1] + + src, err := ioutil.ReadFile(file.Name()) + if err != nil { + log.Fatalf("file '%s' read error: %s", file.Name(), err.Error()) + } + + modules[modName] = string(src) + } + } + + var out bytes.Buffer + out.WriteString(`// Code generated using gensrcmods.go; DO NOT EDIT. + +package stdlib + +// SourceModules are source type standard library modules. +var SourceModules = map[string]string{` + "\n") + for modName, modSrc := range modules { + out.WriteString("\t\"" + modName + "\": " + strconv.Quote(modSrc) + ",\n") + } + out.WriteString("}\n") + + const target = "source_modules.go" + if err := ioutil.WriteFile(target, out.Bytes(), 0644); err != nil { + log.Fatal(err) + } +} |