package noteButtons import ( "fmt" "strings" ) func parseArgs(input string) (map[string]string, error) { args := make(map[string]string) for len(input) > 0 { input = strings.TrimSpace(input) if input == "" { break } // Find the '=' eq := strings.IndexByte(input, '=') if eq == -1 { return nil, fmt.Errorf("expected '='") } key := strings.TrimSpace(input[:eq]) input = strings.TrimSpace(input[eq+1:]) if key == "" { return nil, fmt.Errorf("empty argument name") } var value string if strings.HasPrefix(input, `"`) { // Quote value input = input[1:] end := strings.IndexByte(input, '"') if end == -1 { return nil, fmt.Errorf("unterminated quoted value for %q", key) } value = input[:end] input = input[end+1:] } else { // Unquoted value, consume until whitespace end := strings.IndexAny(input, " \t\r\n") if end == -1 { value = input input = "" } else { value = input[:end] input = input[end:] } } args[key] = value } return args, nil } func formatSkill(skill string) string { words := strings.Split(skill, "-") for i, word := range words { words[i] = capitalize(word) } return strings.Join(words, " ") } func capitalize(s string) string { return strings.ToUpper(string(s[0])) + s[1:] }