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  }