get variable name accepts wildcard (get api*)

This commit is contained in:
tonjo 2018-03-03 01:09:34 +01:00
commit 20b6d8eef8

View file

@ -153,23 +153,27 @@ func (s *Session) sleepHandler(args []string, sess *Session) error {
func (s *Session) getHandler(args []string, sess *Session) error { func (s *Session) getHandler(args []string, sess *Session) error {
key := args[0] key := args[0]
if key == "*" { if strings.Contains(key, "*") {
prev_ns := "" prev_ns := ""
fmt.Println() fmt.Println()
last := len(key) - 1
prefix := key[:last]
for _, k := range s.Env.Sorted() { for _, k := range s.Env.Sorted() {
ns := "" if strings.HasPrefix(k, prefix) {
toks := strings.Split(k, ".") ns := ""
if len(toks) > 0 { toks := strings.Split(k, ".")
ns = toks[0] if len(toks) > 0 {
} ns = toks[0]
}
if ns != prev_ns { if ns != prev_ns {
fmt.Println() fmt.Println()
prev_ns = ns prev_ns = ns
} }
fmt.Printf(" %"+strconv.Itoa(s.Env.Padding)+"s: '%s'\n", k, s.Env.Data[k]) fmt.Printf(" %"+strconv.Itoa(s.Env.Padding)+"s: '%s'\n", k, s.Env.Data[k])
}
} }
fmt.Println() fmt.Println()
} else if found, value := s.Env.Get(key); found == true { } else if found, value := s.Env.Get(key); found == true {