package main import ( "errors" "flag" "fmt" "gitea.arsenm.dev/Arsen6331/scpt" "log" "os" ) func main() { filePath := flag.String("file", "", "File to parse") flag.Parse() if *filePath == "" { log.Fatalln("Use --file to specify a file to parse") } file, err := os.Open(*filePath) if err != nil { log.Fatalln("Error opening specified file:", err) } ast, err := scpt.Parse(file) if err != nil { log.Fatalln("Error parsing file:", err) } scpt.AddFuncs(scpt.FuncMap{ "print": scptPrint, "display-dialog": displayDialog, "do-shell-script": doShellScript, }) 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 }