summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/shared/logs-show.c10
-rw-r--r--src/shared/logs-show.h6
-rw-r--r--src/systemctl/systemctl.c7
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)