summaryrefslogtreecommitdiff
path: root/pkg/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/server.go')
-rw-r--r--pkg/server/server.go50
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() {