code: func splitCommand(line string) (string, []string, string, error) {
  	var args string
  	var flags []string
  
  	// Make sure we get the same results irrespective of leading/trailing spaces
  	cmdline := tokenWhitespace.Split(strings.TrimSpace(line), 2)
  	cmd := strings.ToLower(cmdline[0])
  
  	if len(cmdline) == 2 {
  		var err error
  		args, flags, err = extractBuilderFlags(cmdline[1])
  		if err != nil {
  			return "", nil, "", err
  		}
  	}
  
  	return cmd, flags, strings.TrimSpace(args), nil
  }
docs: // splitCommand takes a single line of text and parses out the cmd and args,
  // which are used for dispatching to more exact parsing functions.