From 508549128d21d752cb861ac2d65bc8fc89e32555 Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Mon, 26 May 2025 21:41:51 -0400 Subject: Added external commands --- main.go | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 52c7ba0..5334796 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "strings" "gosh/cmds" + "gosh/global" ) func main() { @@ -22,9 +23,43 @@ func main() { } cmd = strings.TrimSuffix(cmd, "\n") - err = cmds.Eval(cmd) - if err != nil { - fmt.Fprintln(os.Stderr, err) + args := strings.Split(cmd, " ") + switch (args[0]) { + case "cd": + if err := cmds.ChDir(args); err != nil { + fmt.Fprintln(os.Stderr, err.Error()) + } + break + case "export": + if err := cmds.Export(args); err != nil { + fmt.Fprintln(os.Stderr, err.Error()) + } + break + case "unset": + if err := cmds.Unset(args); err != nil { + fmt.Fprintln(os.Stderr, err.Error()) + } + break + case "set": + if len(args) == 1 { + cmds.PrintEnv() + } else { + cmds.Set(args) + } + break + case "test", "[": + global.ReturnCode = cmds.Test(args) + break + case ":": + break + case "exit": + if err := cmds.Exit(args); err != nil { + fmt.Fprintln(os.Stderr, err.Error()) + } + break + default: + cmds.External(args) + break } } } -- cgit v1.2.3