github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/modules/cmd-new.go (about) 1 package modules 2 3 import ( 4 "embed" 5 6 "github.com/lmorg/murex/config/profile" 7 "github.com/lmorg/murex/lang" 8 "github.com/lmorg/murex/lang/ref" 9 "github.com/lmorg/murex/lang/types" 10 ) 11 12 //go:embed *.mx 13 var mxScripts embed.FS 14 15 func newPackage(p *lang.Process) error { 16 b, err := mxScripts.ReadFile("cmd-new.mx") 17 if err != nil { 18 return err 19 } 20 block := []rune(string(b)) 21 22 fork := p.Fork(lang.F_FUNCTION | lang.F_NEW_MODULE | lang.F_NO_STDIN) 23 fork.Name.Set("(new package)") 24 fork.FileRef = ref.NewModule("shell/modules.newPackage") 25 fork.Variables.Set(p, "MUREX_MODULE_PATH", profile.ModulePath(), types.String) 26 27 exitNum, err := fork.Execute(block) 28 p.ExitNum = exitNum 29 30 return err 31 }