// cmds: handles system commands package cmds import ( "strings" "gosh/global" ) // Eval: evaluates a provided string into a command // if it can't find the command or the arguments are incorrect // returns an error func Eval(cmd string) error { args := strings.Split(cmd, " ") switch args[0] { case "cd": if err := chDir(args); err != nil { return err } break case "export": if err := export(args); err != nil { return err } break case "unset": if err := unset(args); err != nil { return err } break case "set": if len(args) > 1 { set(args) } else { printEnv() } break case "test", "[": global.ReturnCode = test(args) break case "exit": if err := exit(args); err != nil { return err } break case ":": return nil } return nil }