Merge pull request #130 from tonjo/tonjo

get variable name accepts wildcard (get api*)
This commit is contained in:
Simone Margaritelli 2018-03-03 12:10:15 +01:00 committed by GitHub
commit a14f21da17
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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 {
@ -270,7 +274,7 @@ func (s *Session) registerCoreHandlers() {
s.addHandler(NewCommandHandler("get NAME", s.addHandler(NewCommandHandler("get NAME",
"^get\\s+(.+)", "^get\\s+(.+)",
"Get the value of variable NAME, use * for all.", "Get the value of variable NAME, use * alone for all, or NAME* as a wildcard.",
s.getHandler), s.getHandler),
readline.PcItem("get", readline.PcItemDynamic(func(prefix string) []string { readline.PcItem("get", readline.PcItemDynamic(func(prefix string) []string {
prefix = core.Trim(prefix[3:]) prefix = core.Trim(prefix[3:])