func parseCmd()

in projects/aws/bottlerocket-bootstrap/pkg/etcdadm/etcdadm.go [71:95]


func parseCmd(bootstrapCmd string) (command, error) {
	words := strings.Fields(bootstrapCmd)
	if len(words) == 0 {
		return nil, errors.Errorf("invalid bootstrap etcdadm command [%s]", bootstrapCmd)
	}

	cmd := words[0]

	switch cmd {
	case initCmd:
		if len(words) != 4 {
			return nil, errors.Errorf("invalid bootstrap etcdadm init command [%s]", bootstrapCmd)
		}

		return &initCommand{repository: words[1], version: words[2], cipherSuites: words[3]}, nil
	case joinCmd:
		if len(words) != 5 {
			return nil, errors.Errorf("invalid bootstrap etcdadm join command [%s]", bootstrapCmd)
		}

		return &joinCommand{repository: words[1], version: words[2], cipherSuites: words[3], endpoint: words[4]}, nil
	default:
		return nil, errors.Errorf("invalid etcdadm bootstrap command %s", bootstrapCmd)
	}
}