From 06b76011d7edf3a18dc9928221c9926dbd0e0043 Mon Sep 17 00:00:00 2001 From: Namhyung Kim Date: Mon, 13 Feb 2017 22:35:37 +0900 Subject: coredumpctl: Remove dubious newline in the help message It seems the -o opiton and -D option can be printed together. Signed-off-by: Namhyung Kim --- src/coredump/coredumpctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coredump/coredumpctl.c b/src/coredump/coredumpctl.c index 646757f9d9..f0c07c3a6c 100644 --- a/src/coredump/coredumpctl.c +++ b/src/coredump/coredumpctl.c @@ -134,7 +134,7 @@ static void help(void) { " --no-legend Do not print the column headers.\n" " -1 Show information about most recent entry only\n" " -F --field=FIELD List all values a certain field takes\n" - " -o --output=FILE Write output to FILE\n\n" + " -o --output=FILE Write output to FILE\n" " -D --directory=DIR Use journal files from directory\n\n" "Commands:\n" -- cgit v1.2.1 From df65f77bb57c82c5972f78a86bfd6f79b18464e9 Mon Sep 17 00:00:00 2001 From: Namhyung Kim Date: Mon, 13 Feb 2017 22:55:25 +0900 Subject: coredumpctl: Add -r/--reverse option Like journalctl, users sometimes want to see coredump list in reverse order. Signed-off-by: Namhyung Kim --- src/coredump/coredumpctl.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/coredump/coredumpctl.c b/src/coredump/coredumpctl.c index f0c07c3a6c..fcb741b353 100644 --- a/src/coredump/coredumpctl.c +++ b/src/coredump/coredumpctl.c @@ -59,6 +59,7 @@ static bool arg_no_pager = false; static int arg_no_legend = false; static int arg_one = false; static FILE* arg_output = NULL; +static bool arg_reverse = false; static Set *new_matches(void) { Set *set; @@ -133,6 +134,7 @@ static void help(void) { " --no-pager Do not pipe output into a pager\n" " --no-legend Do not print the column headers.\n" " -1 Show information about most recent entry only\n" + " -r --reverse Show the newest entries first\n" " -F --field=FIELD List all values a certain field takes\n" " -o --output=FILE Write output to FILE\n" " -D --directory=DIR Use journal files from directory\n\n" @@ -162,13 +164,14 @@ static int parse_argv(int argc, char *argv[], Set *matches) { { "output", required_argument, NULL, 'o' }, { "field", required_argument, NULL, 'F' }, { "directory", required_argument, NULL, 'D' }, + { "reverse", no_argument, NULL, 'r' }, {} }; assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "ho:F:1D:", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "ho:F:1D:r", options, NULL)) >= 0) switch(c) { case 'h': @@ -216,6 +219,10 @@ static int parse_argv(int argc, char *argv[], Set *matches) { arg_directory = optarg; break; + case 'r': + arg_reverse = true; + break; + case '?': return -EINVAL; @@ -602,10 +609,18 @@ static int dump_list(sd_journal *j) { return print_entry(j, 0); } else { - SD_JOURNAL_FOREACH(j) { - r = print_entry(j, n_found++); - if (r < 0) - return r; + if (!arg_reverse) { + SD_JOURNAL_FOREACH(j) { + r = print_entry(j, n_found++); + if (r < 0) + return r; + } + } else { + SD_JOURNAL_FOREACH_BACKWARDS(j) { + r = print_entry(j, n_found++); + if (r < 0) + return r; + } } if (!arg_field && n_found <= 0) { -- cgit v1.2.1