diff options
Diffstat (limited to 'pkg/server/server.go')
| -rw-r--r-- | pkg/server/server.go | 50 |
1 files changed, 1 insertions, 49 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go index 8c5683a..43cd542 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -47,11 +47,6 @@ type request struct { c *client - cmd *cmd - - argc int - args []string - fail bool out bytes.Buffer @@ -93,37 +88,6 @@ func (r *request) Fatalf(format string, v ...interface{}) { panic(requestError(fmt.Sprintf(format, v...))) } -func (r *request) expect(c ...int) { - desc := func(n int) string { - var sep string - - if n == 1 { - sep = " is " - } else { - sep = " are " - } - - return fmt.Sprint(n, sep, "expected") - } - - check := func(cond bool, args ...interface{}) { - if cond { - r.Fatal(args...) - } - } - - switch len(c) { - case 0: - check(r.argc > 0, "args are not expected") - case 1: - check(r.argc < c[0], "not enough args: ", desc(c[0])) - check(r.argc > c[0], "too many args: ", desc(c[0])) - case 2: - check(r.argc < c[0], "not enough args: at least ", desc(c[0])) - check(r.argc > c[1], "too many args: no more than ", desc(c[1])) - } -} - func (s *Server) isDone() bool { select { case <-s.done: @@ -281,16 +245,6 @@ func (c *client) decode(b []byte) ([]string, error) { return t, nil } -func (r *request) parse(args []string) { - if c, args := getCmd(r.c.s.env.EvalStrings(args)); c == nil { - r.Fatal("command not found") - } else { - r.args = args - r.argc = len(args) - r.cmd = c - } -} - func (r *request) run(args []string) { defer func() { switch err := recover().(type) { @@ -305,12 +259,10 @@ func (r *request) run(args []string) { log.Println(r.c, r, ">", strings.Join(args, " ")) - r.parse(args) - r.c.s.mu.Lock() defer r.c.s.mu.Unlock() - r.cmd.f(r) + runCmd(r, r.c.s.env.EvalStrings(args)) } func (c *client) close() { |
