This make systemd-delta follow the behaviour of systemctl
and journalctl.
https://bugs.freedesktop.org/show_bug.cgi?id=67656
[zj: unify color query methods between those three programs.]
if (!(arg_flags & SHOW_MASKED))
return 0;
if (!(arg_flags & SHOW_MASKED))
return 0;
- printf(ANSI_HIGHLIGHT_RED_ON "[MASKED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom);
+ printf("%s%s%s %s → %s\n",
+ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom);
if (!(arg_flags & SHOW_EQUIVALENT))
return 0;
if (!(arg_flags & SHOW_EQUIVALENT))
return 0;
- printf(ANSI_HIGHLIGHT_GREEN_ON "[EQUIVALENT]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom);
+ printf("%s%s%s %s → %s\n",
+ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight(), top, bottom);
if (!(arg_flags & SHOW_REDIRECTED))
return 0;
if (!(arg_flags & SHOW_REDIRECTED))
return 0;
- printf(ANSI_HIGHLIGHT_ON "[REDIRECTED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom);
+ printf("%s%s%s %s → %s\n",
+ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom);
if (!(arg_flags & SHOW_OVERRIDDEN))
return 0;
if (!(arg_flags & SHOW_OVERRIDDEN))
return 0;
- printf(ANSI_HIGHLIGHT_ON "[OVERRIDDEN]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom);
+ printf("%s%s%s %s → %s\n",
+ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom);
if (!(arg_flags & SHOW_EXTENDED))
return 0;
if (!(arg_flags & SHOW_EXTENDED))
return 0;
- printf(ANSI_HIGHLIGHT_ON "[EXTENDED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom);
+ printf("%s%s%s %s → %s\n",
+ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom);
if (!arg_merge) {
sd_id128_t boot_id;
if (!arg_merge) {
sd_id128_t boot_id;
- const char *color_on = on_tty() ? ANSI_HIGHLIGHT_ON : "",
- *color_off = on_tty() ? ANSI_HIGHLIGHT_OFF : "";
r = sd_journal_get_monotonic_usec(j, NULL, &boot_id);
if (r >= 0) {
if (previous_boot_id_valid &&
!sd_id128_equal(boot_id, previous_boot_id))
r = sd_journal_get_monotonic_usec(j, NULL, &boot_id);
if (r >= 0) {
if (previous_boot_id_valid &&
!sd_id128_equal(boot_id, previous_boot_id))
- printf("%s-- Reboot --%s\n", color_on, color_off);
+ printf("%s-- Reboot --%s\n",
+ ansi_highlight(), ansi_highlight_off());
previous_boot_id = boot_id;
previous_boot_id_valid = true;
previous_boot_id = boot_id;
previous_boot_id_valid = true;
+static inline const char *ansi_highlight(void) {
+ return on_tty() ? ANSI_HIGHLIGHT_ON : "";
+}
+
+static inline const char *ansi_highlight_red(void) {
+ return on_tty() ? ANSI_HIGHLIGHT_RED_ON : "";
+}
+
+static inline const char *ansi_highlight_green(void) {
+ return on_tty() ? ANSI_HIGHLIGHT_GREEN_ON : "";
+}
+
+static inline const char *ansi_highlight_off(void) {
+ return on_tty() ? ANSI_HIGHLIGHT_OFF : "";
+}
+
int running_in_chroot(void);
char *ellipsize(const char *s, size_t length, unsigned percent);
int running_in_chroot(void);
char *ellipsize(const char *s, size_t length, unsigned percent);
-static const char *ansi_highlight(bool b) {
-
- if (!on_tty())
- return "";
-
- return b ? ANSI_HIGHLIGHT_ON : ANSI_HIGHLIGHT_OFF;
-}
-
-static const char *ansi_highlight_red(bool b) {
-
- if (!on_tty())
- return "";
-
- return b ? ANSI_HIGHLIGHT_RED_ON : ANSI_HIGHLIGHT_OFF;
-}
-
-static const char *ansi_highlight_green(bool b) {
-
- if (!on_tty())
- return "";
-
- return b ? ANSI_HIGHLIGHT_GREEN_ON : ANSI_HIGHLIGHT_OFF;
-}
-
static int translate_bus_error_to_exit_status(int r, const DBusError *error) {
assert(error);
static int translate_bus_error_to_exit_status(int r, const DBusError *error) {
assert(error);
if (streq(u->load_state, "error") ||
streq(u->load_state, "not-found")) {
if (streq(u->load_state, "error") ||
streq(u->load_state, "not-found")) {
- on_loaded = on = ansi_highlight_red(true);
- off_loaded = off = ansi_highlight_red(false);
+ on_loaded = on = ansi_highlight_red();
+ off_loaded = off = ansi_highlight_off();
} else
on_loaded = off_loaded = "";
if (streq(u->active_state, "failed")) {
} else
on_loaded = off_loaded = "";
if (streq(u->active_state, "failed")) {
- on_active = on = ansi_highlight_red(true);
- off_active = off = ansi_highlight_red(false);
+ on_active = on = ansi_highlight_red();
+ off_active = off = ansi_highlight_off();
} else
on_active = off_active = "";
} else
on_active = off_active = "";
if (job_count)
printf("JOB = Pending job for the unit.\n");
puts("");
if (job_count)
printf("JOB = Pending job for the unit.\n");
puts("");
- on = ansi_highlight(true);
- off = ansi_highlight(false);
+ on = ansi_highlight();
+ off = ansi_highlight_off();
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
- on = ansi_highlight(true);
- off = ansi_highlight(false);
+ on = ansi_highlight();
+ off = ansi_highlight_off();
if (!arg_no_legend)
printf("\n");
} else {
if (!arg_no_legend)
printf("\n");
} else {
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
u->state == UNIT_FILE_MASKED_RUNTIME ||
u->state == UNIT_FILE_DISABLED ||
u->state == UNIT_FILE_INVALID) {
u->state == UNIT_FILE_MASKED_RUNTIME ||
u->state == UNIT_FILE_DISABLED ||
u->state == UNIT_FILE_INVALID) {
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
} else if (u->state == UNIT_FILE_ENABLED) {
} else if (u->state == UNIT_FILE_ENABLED) {
- on = ansi_highlight_green(true);
- off = ansi_highlight_green(false);
+ on = ansi_highlight_green();
+ off = ansi_highlight_off();
assert(n == 0 || jobs);
if (n == 0) {
assert(n == 0 || jobs);
if (n == 0) {
- on = ansi_highlight_green(true);
- off = ansi_highlight_green(false);
+ on = ansi_highlight_green();
+ off = ansi_highlight_off();
printf("%sNo jobs running.%s\n", on, off);
return;
printf("%sNo jobs running.%s\n", on, off);
return;
_cleanup_free_ char *e = NULL;
if (streq(j->state, "running")) {
_cleanup_free_ char *e = NULL;
if (streq(j->state, "running")) {
- on = ansi_highlight(true);
- off = ansi_highlight(false);
+ on = ansi_highlight();
+ off = ansi_highlight_off();
- on = ansi_highlight(true);
- off = ansi_highlight(false);
+ on = ansi_highlight();
+ off = ansi_highlight_off();
if (on_tty())
printf("\n%s%zu jobs listed%s.\n", on, n, off);
if (on_tty())
printf("\n%s%zu jobs listed%s.\n", on, n, off);
printf(" Follow: unit currently follows state of %s\n", i->following);
if (streq_ptr(i->load_state, "error")) {
printf(" Follow: unit currently follows state of %s\n", i->following);
if (streq_ptr(i->load_state, "error")) {
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
ss = streq_ptr(i->active_state, i->sub_state) ? NULL : i->sub_state;
if (streq_ptr(i->active_state, "failed")) {
ss = streq_ptr(i->active_state, i->sub_state) ? NULL : i->sub_state;
if (streq_ptr(i->active_state, "failed")) {
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
} else if (streq_ptr(i->active_state, "active") || streq_ptr(i->active_state, "reloading")) {
} else if (streq_ptr(i->active_state, "active") || streq_ptr(i->active_state, "reloading")) {
- on = ansi_highlight_green(true);
- off = ansi_highlight_green(false);
+ on = ansi_highlight_green();
+ off = ansi_highlight_off();
good = is_clean_exit_lsb(p->code, p->status, NULL);
if (!good) {
good = is_clean_exit_lsb(p->code, p->status, NULL);
if (!good) {
- on = ansi_highlight_red(true);
- off = ansi_highlight_red(false);
+ on = ansi_highlight_red();
+ off = ansi_highlight_off();
if (i->need_daemon_reload)
printf("\n%sWarning:%s Unit file changed on disk, 'systemctl %sdaemon-reload' recommended.\n",
if (i->need_daemon_reload)
printf("\n%sWarning:%s Unit file changed on disk, 'systemctl %sdaemon-reload' recommended.\n",
- ansi_highlight_red(true),
- ansi_highlight_red(false),
+ ansi_highlight_red(),
+ ansi_highlight_off(),
arg_scope == UNIT_FILE_SYSTEM ? "" : "--user ");
}
arg_scope == UNIT_FILE_SYSTEM ? "" : "--user ");
}