summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/timedatectl.xml30
-rw-r--r--src/shared/bus-util.c3
-rw-r--r--src/timedate/timedatectl.c22
3 files changed, 44 insertions, 11 deletions
diff --git a/man/timedatectl.xml b/man/timedatectl.xml
index b6caa5458d..1a5ba022e5 100644
--- a/man/timedatectl.xml
+++ b/man/timedatectl.xml
@@ -147,6 +147,16 @@
</varlistentry>
<varlistentry>
+ <term><command>show</command></term>
+
+ <listitem><para>Show the same information as <option>status</option>, but in machine readable form.
+ This command is intended to be used whenever computer-parsable output is required.
+ Use <option>status</option> if you are looking for formatted human-readable output.</para>
+ <para>By default, empty properties are suppressed. Use <option>--all</option> to show those too.
+ To select specific properties to show, use <option>--property=</option>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><command>set-time [TIME]</command></term>
<listitem><para>Set the system clock to the specified time.
@@ -207,11 +217,12 @@
</variablelist>
- <refsect2><title>systemd-timesyncd Commands</title>
+ <refsect2>
+ <title>systemd-timesyncd Commands</title>
- <para>The following commands are specific to
- <citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- </para>
+ <para>The following commands are specific to
+ <citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
+ </para>
<variablelist>
<varlistentry>
@@ -225,12 +236,11 @@
<varlistentry>
<term><command>show-timesync</command></term>
- <listitem><para>Show properties of the manager of
- <citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- By default, empty properties are suppressed. Use <option>--all</option> to show those too. To select specific
- properties to show, use <option>--property=</option>. This command is intended to be used whenever
- computer-parsable output is required. Use <option>timesync-status</option> if you are looking for formatted
- human-readable output.</para></listitem>
+ <listitem><para>Show the same information as <option>timesync-status</option>, but in machine readable form.
+ This command is intended to be used whenever computer-parsable output is required.
+ Use <option>timesync-status</option> if you are looking for formatted human-readable output.</para>
+ <para>By default, empty properties are suppressed. Use <option>--all</option> to show those too.
+ To select specific properties to show, use <option>--property=</option>.</para></listitem>
</varlistentry>
</variablelist>
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index ddbc9d934e..888002368a 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -696,7 +696,8 @@ int bus_print_property(const char *name, sd_bus_message *m, bool value, bool all
/* Yes, heuristics! But we can change this check
* should it turn out to not be sufficient */
- if (endswith(name, "Timestamp") || STR_IN_SET(name, "NextElapseUSecRealtime", "LastTriggerUSec")) {
+ if (endswith(name, "Timestamp") ||
+ STR_IN_SET(name, "NextElapseUSecRealtime", "LastTriggerUSec", "TimeUSec", "RTCTimeUSec")) {
char timestamp[FORMAT_TIMESTAMP_MAX];
const char *t;
diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c
index f412082265..e253355405 100644
--- a/src/timedate/timedatectl.c
+++ b/src/timedate/timedatectl.c
@@ -168,6 +168,26 @@ static int show_status(int argc, char **argv, void *userdata) {
return r;
}
+static int show_properties(int argc, char **argv, void *userdata) {
+ sd_bus *bus = userdata;
+ int r;
+
+ assert(bus);
+
+ r = bus_print_all_properties(bus,
+ "org.freedesktop.timedate1",
+ "/org/freedesktop/timedate1",
+ NULL,
+ arg_property,
+ arg_value,
+ arg_all,
+ NULL);
+ if (r < 0)
+ return bus_log_parse_error(r);
+
+ return 0;
+}
+
static int set_time(int argc, char **argv, void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
bool relative = false, interactive = arg_ask_password;
@@ -696,6 +716,7 @@ static int help(void) {
"\n"
"Commands:\n"
" status Show current time settings\n"
+ " show Show properties of systemd-timedated\n"
" set-time TIME Set system time\n"
" set-timezone ZONE Set system time zone\n"
" list-timezones Show known time zones\n"
@@ -815,6 +836,7 @@ static int timedatectl_main(sd_bus *bus, int argc, char *argv[]) {
static const Verb verbs[] = {
{ "status", VERB_ANY, 1, VERB_DEFAULT, show_status },
+ { "show", VERB_ANY, 1, 0, show_properties },
{ "set-time", 2, 2, 0, set_time },
{ "set-timezone", 2, 2, 0, set_timezone },
{ "list-timezones", VERB_ANY, 1, 0, list_timezones },