From 92fdd0e34e1fddf3cc85c3e0691d4fd1196bc382 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Thu, 10 Sep 2020 00:18:05 +0300 Subject: expandable variable syntax --- pkg/server/server.go | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'pkg/server/server.go') 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 -- cgit v1.2.3-70-g09d2