func imageUploadCmd()

in newtmgr/cli/image.go [174:224]


func imageUploadCmd(cmd *cobra.Command, args []string) {
	if len(args) < 1 {
		nmUsage(cmd, util.NewNewtError("Need to specify image to upload"))
	}

	imageFile, err := ioutil.ReadFile(args[0])
	if err != nil {
		nmUsage(cmd, util.NewNewtError(err.Error()))
	}

	s, err := GetSesn()
	if err != nil {
		nmUsage(nil, err)
	}

	c := xact.NewImageUpgradeCmd()
	c.SetTxOptions(nmutil.TxOptions())
	c.Data = imageFile
	if noerase == true {
		c.NoErase = true
	}
	if imageNum < 0 {
		nmUsage(cmd, util.NewNewtError("Invalid image number"))
	}
	c.ImageNum = imageNum
	c.Upgrade = upgrade
	c.ProgressBar = pb.StartNew(len(imageFile))
	c.ProgressBar.SetUnits(pb.U_BYTES)
	c.ProgressBar.ShowSpeed = true
	c.LastOff = 0
	c.MaxWinSz = maxWinSz
	c.ProgressCb = func(cmd *xact.ImageUploadCmd, rsp *nmp.ImageUploadRsp) {
		if rsp.Off > c.LastOff {
			c.ProgressBar.Add(int(rsp.Off - c.LastOff))
			c.LastOff = rsp.Off
		}
	}

	res, err := c.Run(s)
	if err != nil {
		nmUsage(nil, util.ChildNewtError(err))
	}

	if res.Status() != 0 {
		fmt.Printf("Error: %d\n", res.Status())
		return
	}

	c.ProgressBar.Finish()
	fmt.Printf("Done\n")
}