middleman/alias.go
2025-04-08 09:03:00 +02:00

36 lines
765 B
Go

package middleman
import (
"strings"
)
var aliases = make(map[string]map[string]struct{})
func PluckAlias(parent, flag string) []string {
if _, ok := aliases[parent]; !ok {
aliases[parent] = make(map[string]struct{})
}
var alias string
for word := range strings.SplitAfterSeq(flag, "-") {
alias = word[:1]
if alias == "h" {
alias = "H"
if _, ok := aliases[parent][alias]; !ok {
aliases[parent][alias] = struct{}{}
return []string{alias}
}
}
if _, ok := aliases[parent][alias]; !ok {
aliases[parent][alias] = struct{}{}
return []string{alias}
} else {
alias = strings.ToUpper(alias)
if _, ok = aliases[parent][alias]; !ok {
aliases[parent][alias] = struct{}{}
return []string{alias}
}
}
}
return nil
}