func runResCmd()

in newtmgr/cli/res.go [343:406]


func runResCmd(cmd *cobra.Command, args []string) {
	if len(args) < 2 {
		nmUsage(cmd, nil)
	}

	numFileArgs := 0
	if resRawFilename != "" {
		numFileArgs++
	}
	if resJsonFilename != "" {
		numFileArgs++
	}
	if resBinFilename != "" {
		numFileArgs++
	}
	if numFileArgs > 1 {
		nmUsage(cmd, util.FmtNewtError(
			"too many payload files specified: have=%d want<=1", numFileArgs))
	}

	op, err := nmcoap.ParseOp(args[0])
	if err != nil {
		nmUsage(nil, err)
	}

	path := args[1]

	b, err := calcCborPayload(args[2:])
	if err != nil {
		nmUsage(nil, err)
	}

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

	c := xact.NewResCmd()
	c.SetTxOptions(nmutil.TxOptions())
	c.MsgParams = nmcoap.MsgParams{
		Code:    op,
		Uri:     path,
		Payload: b,
	}

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

	sres := res.(*xact.ResResult)
	if sres.Status() != 0 {
		fmt.Printf("Error: %s (%d)\n", sres.Rsp.Code(), sres.Rsp.Code())
		return
	}

	if sres.Rsp.Payload() != nil {
		fmt.Printf("%s\n", resResponseStr(path, sres.Rsp.Payload()))
	}

	if details {
		fmt.Printf(printDetails(sres.Rsp))
	}
}