func runAddTlvsCmd()

in cli/image_cmds.go [175:212]


func runAddTlvsCmd(cmd *cobra.Command, args []string) {
	if len(args) < 3 {
		ImgmodUsage(cmd, nil)
	}

	inFilename := args[0]
	outFilename, err := CalcOutFilename(inFilename)
	if err != nil {
		ImgmodUsage(cmd, err)
	}

	img, err := readImage(inFilename)
	if err != nil {
		ImgmodUsage(cmd, err)
	}

	tlvArgs := args[1:]
	if len(tlvArgs)%2 != 0 {
		ImgmodUsage(cmd, errors.Errorf(
			"invalid argument count; each TLV requires two arguments"))
	}

	tlvs := []image.ImageTlv{}
	for i := 0; i < len(tlvArgs); i += 2 {
		tlv, err := parseTlvArgs(tlvArgs[i], tlvArgs[i+1])
		if err != nil {
			ImgmodUsage(cmd, err)
		}

		tlvs = append(tlvs, tlv)
	}

	img.Tlvs = append(img.Tlvs, tlvs...)

	if err := writeImage(img, outFilename); err != nil {
		ImgmodUsage(nil, err)
	}
}