Move default maps/variables to default.go and add print default function

master
Arsen Musayelyan 1 year ago
parent 1c99345af1
commit 36d1eee759
  1. 30
      defaults.go
  2. 17
      scpt.go

@ -21,6 +21,24 @@ import (
"strconv"
)
// Vars stores any variables set during script runtime
var Vars = map[string]interface{}{}
// FuncMap is a map of strings mapped to suitable script functions
type FuncMap map[string]func(map[string]interface{}) (interface{}, error)
// Funcs stores the functions allowed for use in a script
var Funcs = FuncMap{
"str": toString,
"num": parseNumber,
"bool": parseBool,
"break": setBreakLoop,
"append": appendArray,
"exit": scptExit,
"return": setReturn,
"print": scptPrint,
}
// Default function to convert unnamed argument to a string using fmt.Sprint
func toString(args map[string]interface{}) (interface{}, error) {
val, ok := args[""]
@ -101,3 +119,15 @@ func appendArray(args map[string]interface{}) (interface{}, error) {
// Return appended unnamed argument
return val, nil
}
// Print message via fmt.Println
func scptPrint(args map[string]interface{}) (interface{}, error) {
// Get message
val, ok := args[""]
if !ok {
return nil, errors.New("print requires an unnamed argument")
}
// Print message
fmt.Println(val)
return nil, nil
}

@ -26,23 +26,6 @@ import (
"strings"
)
// Vars stores any variables set during script runtime
var Vars = map[string]interface{}{}
// FuncMap is a map of strings mapped to suitable script functions
type FuncMap map[string]func(map[string]interface{}) (interface{}, error)
// Funcs stores the functions allowed for use in a script
var Funcs = FuncMap{
"str": toString,
"num": parseNumber,
"bool": parseBool,
"break": setBreakLoop,
"append": appendArray,
"exit": scptExit,
"return": setReturn,
}
// AddFuncs adds all functions from the provided FuncMap into
// the Funcs variable
func AddFuncs(fnMap FuncMap) {

Loading…
Cancel
Save