src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/mods/mods.go (about) 1 // Package mods collects standard library modules. 2 package mods 3 4 import ( 5 "src.elv.sh/pkg/eval" 6 "src.elv.sh/pkg/mods/doc" 7 "src.elv.sh/pkg/mods/epm" 8 "src.elv.sh/pkg/mods/file" 9 "src.elv.sh/pkg/mods/flag" 10 "src.elv.sh/pkg/mods/math" 11 "src.elv.sh/pkg/mods/md" 12 "src.elv.sh/pkg/mods/os" 13 "src.elv.sh/pkg/mods/path" 14 "src.elv.sh/pkg/mods/platform" 15 "src.elv.sh/pkg/mods/re" 16 readline_binding "src.elv.sh/pkg/mods/readline-binding" 17 "src.elv.sh/pkg/mods/runtime" 18 "src.elv.sh/pkg/mods/str" 19 "src.elv.sh/pkg/mods/unix" 20 ) 21 22 // AddTo adds all standard library modules to the Evaler. 23 // 24 // Some modules (the runtime module for now) may rely on properties set on the 25 // Evaler, so any mutations afterwards may not be properly reflected. 26 func AddTo(ev *eval.Evaler) { 27 ev.AddModule("runtime", runtime.Ns(ev)) 28 ev.AddModule("math", math.Ns) 29 ev.AddModule("path", path.Ns) 30 ev.AddModule("platform", platform.Ns) 31 ev.AddModule("re", re.Ns) 32 ev.AddModule("str", str.Ns) 33 ev.AddModule("file", file.Ns) 34 ev.AddModule("flag", flag.Ns) 35 ev.AddModule("doc", doc.Ns) 36 ev.AddModule("os", os.Ns) 37 ev.AddModule("md", md.Ns) 38 if unix.ExposeUnixNs { 39 ev.AddModule("unix", unix.Ns) 40 } 41 ev.BundledModules["epm"] = epm.Code 42 ev.BundledModules["readline-binding"] = readline_binding.Code 43 }