diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/shared/logs-show.c | 10 | ||||
-rw-r--r-- | src/shared/logs-show.h | 6 | ||||
-rw-r--r-- | src/systemctl/systemctl.c | 7 |
3 files changed, 13 insertions, 10 deletions
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index af9bcbd0f7..bbfb74c2bd 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -553,15 +553,14 @@ int show_journal_by_unit( unsigned n_columns, usec_t not_before, unsigned how_many, - bool show_all, - bool follow, - bool warn_cutoff) { + OutputFlags flags) { char *m = NULL; sd_journal *j = NULL; int r; unsigned line = 0; bool need_seek = false; + int warn_cutoff = flags & OUTPUT_WARN_CUTOFF; assert(mode >= 0); assert(mode < _OUTPUT_MODE_MAX); @@ -633,8 +632,7 @@ int show_journal_by_unit( line ++; - r = output_journal(j, mode, line, n_columns, - show_all ? OUTPUT_SHOW_ALL : 0); + r = output_journal(j, mode, line, n_columns, flags); if (r < 0) goto finish; } @@ -659,7 +657,7 @@ int show_journal_by_unit( warn_cutoff = false; } - if (!follow) + if (!(flags & OUTPUT_FOLLOW)) break; r = sd_journal_wait(j, (usec_t) -1); diff --git a/src/shared/logs-show.h b/src/shared/logs-show.h index beade06a78..44afaf306a 100644 --- a/src/shared/logs-show.h +++ b/src/shared/logs-show.h @@ -42,6 +42,8 @@ typedef enum OutputMode { typedef enum OutputFlags { OUTPUT_SHOW_ALL = 1 << 0, OUTPUT_MONOTONIC_MODE = 1 << 1, + OUTPUT_FOLLOW = 1 << 2, + OUTPUT_WARN_CUTOFF = 1 << 3, } OutputFlags; int output_journal(sd_journal *j, OutputMode mode, unsigned line, @@ -53,9 +55,7 @@ int show_journal_by_unit( unsigned n_columns, usec_t not_before, unsigned how_many, - bool show_all, - bool follow, - bool warn_cutoff); + OutputFlags flags); const char* output_mode_to_string(OutputMode m); OutputMode output_mode_from_string(const char *s); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 6ab92cebf0..344dcd3e75 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2592,8 +2592,13 @@ static void print_status_info(UnitStatusInfo *i) { } if (i->id && arg_transport != TRANSPORT_SSH) { + int flags = (arg_lines*OUTPUT_SHOW_ALL | + arg_follow*OUTPUT_FOLLOW | + !arg_quiet*OUTPUT_WARN_CUTOFF); printf("\n"); - show_journal_by_unit(i->id, arg_output, 0, i->inactive_exit_timestamp_monotonic, arg_lines, arg_all, arg_follow, !arg_quiet); + show_journal_by_unit(i->id, arg_output, 0, + i->inactive_exit_timestamp_monotonic, + arg_lines, flags); } if (i->need_daemon_reload) |