diff options
Diffstat (limited to 'pkg/server/env.go')
| -rw-r--r-- | pkg/server/env.go | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/pkg/server/env.go b/pkg/server/env.go index 3ed820e..aa0ed40 100644 --- a/pkg/server/env.go +++ b/pkg/server/env.go @@ -4,44 +4,32 @@ import ( "strings" ) -func varGet(r *request) { - r.expect(1) - - if v, ok := r.c.s.env.Find(r.args[0]); ok { +func varGet(r *request, name string) { + if v, ok := r.c.s.env.Find(name); ok { r.Print(v) } else { r.Fatal("no such variable") } } -func varSet(r *request) { - if len(r.args) < 2 { - r.Fatal("not enough args") - } - - value := strings.Join(r.args[1:], " ") +func varSet(r *request, name string, args ...string) { + value := strings.Join(args, " ") - if err := r.c.s.env.Set(r.args[0], value); err != nil { + if err := r.c.s.env.Set(name, value); err != nil { r.Fatal(err) } } -func varPush(r *request) { - if len(r.args) < 2 { - r.Fatal("not enough args") - } - - value := strings.Join(r.args[1:], " ") +func varPush(r *request, name string, args ...string) { + value := strings.Join(args, " ") - if err := r.c.s.env.Push(r.args[0], value); err != nil { + if err := r.c.s.env.Push(name, value); err != nil { r.Fatal(err) } } -func varUnset(r *request) { - r.expect(1) - - if !r.c.s.env.Del(r.args[0]) { +func varUnset(r *request, name string) { + if !r.c.s.env.Del(name) { r.Fatal("no such variable") } } @@ -58,10 +46,10 @@ func varClear(r *request) { } func init() { - newCmd(varGet, "get") - newCmd(varSet, "set") - newCmd(varPush, "push") - newCmd(varUnset, "unset") - newCmd(varShow, "env") - newCmd(varClear, "clear") + newCmd("get", varGet, "name") + newCmd("set", varSet, "name value") + newCmd("push", varPush, "name value") + newCmd("unset", varUnset, "name") + newCmd("env", varShow, "name") + newCmd("clear", varClear, "") } |
