diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-05-19 01:47:49 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-05-23 01:14:11 +0300 |
| commit | 1c4c61c90272fe251245da5f30b6134ba5a410f1 (patch) | |
| tree | d2809dd944de691e66422aec1becb4acc17b9a19 /pkg/server/server.go | |
| parent | 2c5259a594f5d8ddf12691deb6a79a0b566f024e (diff) | |
add redirect listen option
Diffstat (limited to 'pkg/server/server.go')
| -rw-r--r-- | pkg/server/server.go | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go index e794b56..43a0309 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -288,26 +288,31 @@ func (c *client) decode(b []byte) ([]string, error) { } func (r *request) eval(args []string) []string { - for n, s := range args { - if strings.HasPrefix(s, "^") { - args[n] = s[1:] + var out []string + + for _, s := range args { + var t string + + if strings.HasPrefix(s, ":") { + t = s[1:] } else { - args[n] = r.c.s.env.Eval(s) + t = r.c.s.env.Eval(s) } + + out = append(out, t) } - return args + return out } func (r *request) parse(args []string) { - c, args := getCmd(r.eval(args)) - if c == nil { + if c, args := getCmd(r.eval(args)); c == nil { r.Fatal("command not found") + } else { + r.args = args + r.argc = len(args) + r.cmd = c } - - r.args = args - r.argc = len(args) - r.cmd = c } func (r *request) run(args []string) { |
