From ba11fdcf76c75990f9ed0715df7c522499f4c35e Mon Sep 17 00:00:00 2001 From: Arsen Musayelyan Date: Tue, 2 Mar 2021 00:33:55 -0800 Subject: [PATCH] Add example for adding functions to cmd/scpt --- cmd/scpt/main.go | 14 ++++++++++++++ test.scpt | 4 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cmd/scpt/main.go b/cmd/scpt/main.go index 2842a51..795da4c 100644 --- a/cmd/scpt/main.go +++ b/cmd/scpt/main.go @@ -1,7 +1,9 @@ package main import ( + "errors" "flag" + "fmt" "gitea.arsenm.dev/Arsen6331/scpt" "log" "os" @@ -23,8 +25,20 @@ func main() { if err != nil { log.Fatalln("Error parsing file:", err) } + scpt.AddFuncs(scpt.FuncMap{ + "print": scptPrint, + }) err = ast.Execute() if err != nil { log.Fatalln("Error executing script:", err) } } + +func scptPrint(args map[string]interface{}) (interface{}, error) { + val, ok := args[""] + if !ok { + return nil, errors.New("print requires an unnamed argument") + } + fmt.Println(val) + return nil, nil +} \ No newline at end of file diff --git a/test.scpt b/test.scpt index bfe231b..47b364d 100644 --- a/test.scpt +++ b/test.scpt @@ -14,8 +14,6 @@ if {3 == 3} { } } -do-shell-script "echo rpt" - repeat 5 times { z in - do-shell-script {"echo " + (string $z)} + print $z } \ No newline at end of file