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