print_event(type, msg);
}
+static int ubus_cli_error(char *cmd, int argc, char **argv, int err)
+{
+ int i;
+
+ if (!simple_output && !isatty(fileno(stderr))) {
+ fprintf(stderr, "Command failed: ubus %s ", cmd);
+ for (i = 0; i < argc; i++) {
+ fprintf(stderr, "%s ", argv[i]);
+ }
+ fprintf(stderr, "(%s)\n", ubus_strerror(err));
+
+ return -err;
+ }
+
+ return err;
+}
+
static int ubus_cli_list(struct ubus_context *ctx, int argc, char **argv)
{
const char *path = NULL;
blob_buf_init(&b, 0);
if (argc == 3 && !blobmsg_add_json_from_string(&b, argv[2])) {
- return UBUS_STATUS_PARSE_ERROR;
+ return ubus_cli_error("call", argc, argv, UBUS_STATUS_PARSE_ERROR);
}
ret = ubus_lookup_id(ctx, argv[0], &id);
if (ret)
return ret;
- return ubus_invoke(ctx, id, argv[1], b.head, receive_call_result_data, NULL, timeout * 1000);
+ ret = ubus_invoke(ctx, id, argv[1], b.head, receive_call_result_data, NULL, timeout * 1000);
+ if (ret)
+ return ubus_cli_error("call", argc, argv, ret);
+
+ return ret;
}
struct cli_listen_data {