diff options
author | bpc2003 <wpesfriendnva@gmail.com> | 2025-05-26 21:41:51 -0400 |
---|---|---|
committer | bpc2003 <wpesfriendnva@gmail.com> | 2025-05-26 21:41:51 -0400 |
commit | 508549128d21d752cb861ac2d65bc8fc89e32555 (patch) | |
tree | f7f7095cb55df483654436df90b0d3cf7a98e3b4 /main.go | |
parent | 64c5bf8daf8b71b6efc2b4d2be34b179c8c87059 (diff) |
Added external commands
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 41 |
1 files changed, 38 insertions, 3 deletions
@@ -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 } } } |