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")
}