package server import ( "strings" ) func varGet(r *request) { r.expect(1) if v, ok := r.c.s.env.Find(r.args[0]); ok { r.Print(v) } else { r.Fatal("no such variable") } } func varSet(r *request) { value := strings.Join(r.args[1:], " ") if err := r.c.s.env.Set(r.args[0], value); err != nil { r.Fatal(err) } } func varUnset(r *request) { r.expect(1) if !r.c.s.env.Del(r.args[0]) { r.Fatal("no such variable") } } func varShow(r *request) { r.c.s.env.Each(func(k string, v string) bool { r.Println(k, v) return true }) } func varClear(r *request) { r.c.s.env.Clear() } func init() { newCmd(varGet, "get") newCmd(varSet, "set") newCmd(varUnset, "unset") newCmd(varShow, "env") newCmd(varClear, "clear") }