github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/time/time.go (about) 1 package time 2 3 import ( 4 "errors" 5 "time" 6 7 "github.com/lmorg/murex/lang" 8 "github.com/lmorg/murex/lang/types" 9 ) 10 11 func init() { 12 lang.DefineFunction("time", cmdTime, types.Any) 13 } 14 15 func cmdTime(p *lang.Process) (err error) { 16 p.Stdout.SetDataType(types.Integer) 17 18 if p.Parameters.Len() == 0 { 19 return errors.New("Missing parameters") 20 } 21 22 block := p.Parameters.StringAll() 23 start := time.Now() 24 25 p.ExitNum, err = p.Fork(lang.F_DEFAULTS).Execute([]rune(block)) 26 if err != nil { 27 return 28 } 29 30 s := types.FloatToString(time.Now().Sub(start).Seconds()) 31 _, err = p.Stderr.Write([]byte(s)) 32 return 33 }