diff options
Diffstat (limited to 'pkg/server/server.go')
| -rw-r--r-- | pkg/server/server.go | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go index c389d50..5ca81d1 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -7,7 +7,6 @@ import ( "io" "log" "net" - "regexp" "strings" "sync" "time" @@ -60,8 +59,6 @@ type request struct { type requestError string -var wordsRe = regexp.MustCompile("[[:^space:]]+") - var errNotImplemented = errors.New("not implemented") func (c *client) String() string { @@ -208,9 +205,7 @@ func (s *Server) newClient(conn net.Conn) *client { return c } -func (s *Server) Command(query string) error { - args := wordsRe.FindAllString(query, -1) - +func (s *Server) Command(args []string) error { r := &request{c: &client{s: s}} r.run(args) @@ -290,26 +285,8 @@ func (c *client) decode(b []byte) ([]string, error) { return t, nil } -func (r *request) eval(args []string) []string { - var out []string - - for _, s := range args { - var t string - - if strings.HasPrefix(s, ":") { - t = s[1:] - } else { - t = r.c.s.env.Eval(s) - } - - out = append(out, t) - } - - return out -} - func (r *request) parse(args []string) { - if c, args := getCmd(r.eval(args)); c == nil { + if c, args := getCmd(r.c.s.env.EvalStrings(args)); c == nil { r.Fatal("command not found") } else { r.args = args |
