From fa6dee52ca3db9e5922c59d9e386c70266f0b2b0 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 5 Feb 2018 15:27:42 +0900 Subject: [PATCH] systemctl: show Timers{Monotonic,Calendar}= --- src/systemctl/systemctl.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 5732d88..99136d4 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -4920,7 +4920,7 @@ static int print_property(const char *name, sd_bus_message *m, const char *conte return 0; - } else if (contents[1] == SD_BUS_TYPE_STRUCT_BEGIN && streq(name, "Timers")) { + } else if (contents[1] == SD_BUS_TYPE_STRUCT_BEGIN && streq(name, "TimersMonotonic")) { const char *base; uint64_t value, next_elapse; @@ -4931,7 +4931,7 @@ static int print_property(const char *name, sd_bus_message *m, const char *conte while ((r = sd_bus_message_read(m, "(stt)", &base, &value, &next_elapse)) > 0) { char timespan1[FORMAT_TIMESPAN_MAX], timespan2[FORMAT_TIMESPAN_MAX]; - print_prop(base, "{ value=%s ; next_elapse=%s }", + print_prop(name, "{ %s=%s ; next_elapse=%s }", base, format_timespan(timespan1, sizeof(timespan1), value, 0), format_timespan(timespan2, sizeof(timespan2), next_elapse, 0)); } @@ -4944,6 +4944,29 @@ static int print_property(const char *name, sd_bus_message *m, const char *conte return 0; + } else if (contents[1] == SD_BUS_TYPE_STRUCT_BEGIN && streq(name, "TimersCalendar")) { + const char *base, *spec; + uint64_t next_elapse; + + r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "(sst)"); + if (r < 0) + return bus_log_parse_error(r); + + while ((r = sd_bus_message_read(m, "(sst)", &base, &spec, &next_elapse)) > 0) { + char timestamp[FORMAT_TIMESTAMP_MAX]; + + print_prop(name, "{ %s=%s ; next_elapse=%s }", base, spec, + format_timestamp(timestamp, sizeof(timestamp), next_elapse)); + } + if (r < 0) + return bus_log_parse_error(r); + + r = sd_bus_message_exit_container(m); + if (r < 0) + return bus_log_parse_error(r); + + return 0; + } else if (contents[1] == SD_BUS_TYPE_STRUCT_BEGIN && startswith(name, "Exec")) { ExecStatusInfo info = {}; -- 2.7.4