#define TIMEOUT_USEC (30 * USEC_PER_SEC) /* 30 seconds */
static PagerFlags arg_pager_flags = 0;
+static bool arg_legend = true;
static RuntimeScope arg_runtime_scope = RUNTIME_SCOPE_SYSTEM;
static sd_json_format_flags_t arg_json_format_flags = SD_JSON_FORMAT_OFF|SD_JSON_FORMAT_PRETTY_AUTO|SD_JSON_FORMAT_COLOR_AUTO;
static char **arg_matches = NULL;
return log_error_errno(r, "Failed to write JSON: %m");
}
- if (context->n_metrics == 0)
+ if (context->n_metrics == 0 && arg_legend)
log_info("No metrics collected.");
return 0;
return r;
if (!table_isempty(table) || sd_json_format_enabled(arg_json_format_flags)) {
- r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, /* show_header= */ true);
+ r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, arg_legend);
if (r < 0)
return r;
}
- if (!sd_json_format_enabled(arg_json_format_flags)) {
+ if (arg_legend && !sd_json_format_enabled(arg_json_format_flags)) {
if (table_isempty(table))
printf("No metrics available.\n");
else
}
}
- if (set_isempty(context.link_infos))
- log_info("No metrics sources found.");
- else {
+ if (set_isempty(context.link_infos)) {
+ if (arg_legend)
+ log_info("No metrics sources found.");
+ } else {
assert(context.event);
r = sd_event_loop(context.event);
}
if (!table_isempty(table) || sd_json_format_enabled(arg_json_format_flags)) {
- r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, /* show_header= */ true);
+ r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, arg_legend);
if (r < 0)
return r;
}
- if (!sd_json_format_enabled(arg_json_format_flags)) {
+ if (arg_legend && !sd_json_format_enabled(arg_json_format_flags)) {
if (table_isempty(table))
printf("No sources available.\n");
else
" -h --help Show this help\n"
" --version Show package version\n"
" --no-pager Do not pipe output into a pager\n"
+ " --no-legend Do not show the headers and footers\n"
" --user Connect to user service manager\n"
" --system Connect to system service manager (default)\n"
" --json=pretty|short\n"
enum {
ARG_VERSION = 0x100,
ARG_NO_PAGER,
+ ARG_NO_LEGEND,
ARG_USER,
ARG_SYSTEM,
ARG_JSON,
};
static const struct option options[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, ARG_VERSION },
- { "no-pager", no_argument, NULL, ARG_NO_PAGER },
- { "user", no_argument, NULL, ARG_USER },
- { "system", no_argument, NULL, ARG_SYSTEM },
- { "json", required_argument, NULL, ARG_JSON },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, ARG_VERSION },
+ { "no-pager", no_argument, NULL, ARG_NO_PAGER },
+ { "no-legend", no_argument, NULL, ARG_NO_LEGEND },
+ { "user", no_argument, NULL, ARG_USER },
+ { "system", no_argument, NULL, ARG_SYSTEM },
+ { "json", required_argument, NULL, ARG_JSON },
{}
};
arg_pager_flags |= PAGER_DISABLE;
break;
+ case ARG_NO_LEGEND:
+ arg_legend = false;
+ break;
+
case ARG_USER:
arg_runtime_scope = RUNTIME_SCOPE_USER;
break;