code: func GetCommand() *Command {
  	var command *Command
  loop:
  	for {
  		cmd := prompter.Choose("\nEnter command", []string{"quit", "message"}, "message")
  		command = new(Command)
  		switch cmd {
  		case "quit":
  			command.Cmd = "quit"
  			fin := prompter.YN("Quit?", true)
  			if fin {
  				break loop
  			}
  		case "message":
  			command.Cmd = "message"
  			var (
  				topic string
  				text  string
  			)
  			for {
  				topic = prompter.Prompt("Enter topic (REQUIRED)", "")
  				if topic == "" {
  					fmt.Println("topic cannot be blank")
  				} else {
  					break
  				}
  			}
  			for {
  				text = prompter.Prompt("Enter message (REQUIRED)", "")
  				if text == "" {
  					fmt.Println("message cannot be blank")
  				} else {
  					break
  				}
  			}
  			command.Topic = topic
  			command.Text = text
  			key := prompter.Prompt("Enter key", "")
  			command.Key = key
  			metadata := prompter.Prompt("Enter metadata", "")
  			command.Metadata = metadata
  			send := prompter.YN("Send Message?", true)
  			if send {
  				break loop
  			}
  		}
  	}
  	return command
  }
docs: // GetCommand allows user to select a command and reads the input arguments.