package cmds import ( "errors" "os" "strings" ) 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 len(args) == 1 || len(args) >= 3 { return errors.New("usage: unset {name}") } os.Unsetenv(args[1]) break case "set": if len(args) > 1 { set(args) } else { printenv() } break case "exit": if err := exit(args); err != nil { return err } break case ":": return nil } return nil }