1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-24 21:34:08 +03:00

timedatectl: update output format of status command

This commit is contained in:
Yu Watanabe 2018-04-17 13:55:07 +09:00
parent 5d280742b6
commit f567f086d2

View File

@ -36,19 +36,19 @@ typedef struct StatusInfo {
usec_t rtc_time; usec_t rtc_time;
bool rtc_local; bool rtc_local;
bool ntp_enabled;
bool ntp_capable; bool ntp_capable;
bool ntp_active;
bool ntp_synced; bool ntp_synced;
} StatusInfo; } StatusInfo;
static void print_status_info(const StatusInfo *i) { static void print_status_info(const StatusInfo *i) {
const char *old_tz = NULL, *tz;
bool have_time = false;
char a[LINE_MAX]; char a[LINE_MAX];
struct tm tm; struct tm tm;
time_t sec; time_t sec;
bool have_time = false;
const char *old_tz = NULL, *tz;
int r;
size_t n; size_t n;
int r;
assert(i); assert(i);
@ -74,13 +74,13 @@ static void print_status_info(const StatusInfo *i) {
if (have_time) { if (have_time) {
n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)); n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm));
printf(" Local time: %s\n", n > 0 ? a : "n/a"); printf(" Local time: %s\n", n > 0 ? a : "n/a");
n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm)); n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm));
printf(" Universal time: %s\n", n > 0 ? a : "n/a"); printf(" Universal time: %s\n", n > 0 ? a : "n/a");
} else { } else {
printf(" Local time: %s\n", "n/a"); printf(" Local time: %s\n", "n/a");
printf(" Universal time: %s\n", "n/a"); printf(" Universal time: %s\n", "n/a");
} }
if (i->rtc_time > 0) { if (i->rtc_time > 0) {
@ -88,9 +88,9 @@ static void print_status_info(const StatusInfo *i) {
rtc_sec = (time_t) (i->rtc_time / USEC_PER_SEC); rtc_sec = (time_t) (i->rtc_time / USEC_PER_SEC);
n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S", gmtime_r(&rtc_sec, &tm)); n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S", gmtime_r(&rtc_sec, &tm));
printf(" RTC time: %s\n", n > 0 ? a : "n/a"); printf(" RTC time: %s\n", n > 0 ? a : "n/a");
} else } else
printf(" RTC time: %s\n", "n/a"); printf(" RTC time: %s\n", "n/a");
if (have_time) if (have_time)
n = strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm)); n = strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm));
@ -105,13 +105,13 @@ static void print_status_info(const StatusInfo *i) {
else else
tzset(); tzset();
printf(" Time zone: %s (%s)\n" printf(" Time zone: %s (%s)\n"
" System clock synchronized: %s\n" "System clock synchronized: %s\n"
"systemd-timesyncd.service active: %s\n" " NTP service: %s\n"
" RTC in local TZ: %s\n", " RTC in local TZ: %s\n",
strna(i->timezone), have_time && n > 0 ? a : "n/a", strna(i->timezone), have_time && n > 0 ? a : "n/a",
yes_no(i->ntp_synced), yes_no(i->ntp_synced),
i->ntp_capable ? yes_no(i->ntp_enabled) : "n/a", i->ntp_capable ? (i->ntp_active ? "active" : "inactive") : "n/a",
yes_no(i->rtc_local)); yes_no(i->rtc_local));
if (i->rtc_local) if (i->rtc_local)
@ -127,13 +127,13 @@ static void print_status_info(const StatusInfo *i) {
static int show_status(int argc, char **argv, void *userdata) { static int show_status(int argc, char **argv, void *userdata) {
StatusInfo info = {}; StatusInfo info = {};
static const struct bus_properties_map map[] = { static const struct bus_properties_map map[] = {
{ "Timezone", "s", NULL, offsetof(StatusInfo, timezone) }, { "Timezone", "s", NULL, offsetof(StatusInfo, timezone) },
{ "LocalRTC", "b", NULL, offsetof(StatusInfo, rtc_local) }, { "LocalRTC", "b", NULL, offsetof(StatusInfo, rtc_local) },
{ "NTP", "b", NULL, offsetof(StatusInfo, ntp_enabled) }, { "NTP", "b", NULL, offsetof(StatusInfo, ntp_active) },
{ "CanNTP", "b", NULL, offsetof(StatusInfo, ntp_capable) }, { "CanNTP", "b", NULL, offsetof(StatusInfo, ntp_capable) },
{ "NTPSynchronized", "b", NULL, offsetof(StatusInfo, ntp_synced) }, { "NTPSynchronized", "b", NULL, offsetof(StatusInfo, ntp_synced) },
{ "TimeUSec", "t", NULL, offsetof(StatusInfo, time) }, { "TimeUSec", "t", NULL, offsetof(StatusInfo, time) },
{ "RTCTimeUSec", "t", NULL, offsetof(StatusInfo, rtc_time) }, { "RTCTimeUSec", "t", NULL, offsetof(StatusInfo, rtc_time) },
{} {}
}; };