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.go27
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) {