chiark / gitweb /
machinectl: show list headers even if we pipe, since that appears to be the usual way
[elogind.git] / src / machine / machinectl.c
index 6234f6add238a5e04c591cab6325c08264867cb7..4b8351c98a95735fe9cd2f18df21bc71c3731379 100644 (file)
@@ -84,12 +84,11 @@ static int list_machines(sd_bus *bus, char **args, unsigned n) {
                 return r;
         }
 
-        if (on_tty())
-                printf("%-32s %-9s %-16s\n", "MACHINE", "CONTAINER", "SERVICE");
+        printf("%-32s %-9s %-16s\n", "MACHINE", "CONTAINER", "SERVICE");
 
         r = sd_bus_message_enter_container(reply, SD_BUS_TYPE_ARRAY, "(ssso)");
         if (r < 0)
-                goto fail;
+                return bus_log_parse_error(r);
 
         while ((r = sd_bus_message_read(reply, "(ssso)", &name, &class, &service, &object)) > 0) {
                 printf("%-32s %-9s %-16s\n", name, class, service);
@@ -97,20 +96,15 @@ static int list_machines(sd_bus *bus, char **args, unsigned n) {
                 k++;
         }
         if (r < 0)
-                goto fail;
+                return bus_log_parse_error(r);
 
         r = sd_bus_message_exit_container(reply);
         if (r < 0)
-                goto fail;
+                return bus_log_parse_error(r);
 
-        if (on_tty())
-                printf("\n%u machines listed.\n", k);
+        printf("\n%u machines listed.\n", k);
 
         return 0;
-
-fail:
-        log_error("Failed to parse reply: %s", strerror(-r));
-        return r;
 }
 
 static int show_scope_cgroup(sd_bus *bus, const char *unit, pid_t leader) {
@@ -146,10 +140,8 @@ static int show_scope_cgroup(sd_bus *bus, const char *unit, pid_t leader) {
         }
 
         r = sd_bus_message_read(reply, "s", &cgroup);
-        if (r < 0) {
-                log_error("Failed to parse reply: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return bus_log_parse_error(r);
 
         if (isempty(cgroup))
                 return 0;
@@ -284,7 +276,7 @@ static int show_properties(sd_bus *bus, const char *path, bool *new_line) {
 
         *new_line = true;
 
-        r = bus_print_all_properties(bus, path, arg_property, arg_all);
+        r = bus_print_all_properties(bus, "org.freedesktop.machine1", path, arg_property, arg_all);
         if (r < 0)
                 log_error("Could not get properties: %s", strerror(-r));
 
@@ -334,10 +326,8 @@ static int show(sd_bus *bus, char **args, unsigned n) {
                 }
 
                 r = sd_bus_message_read(reply, "o", &path);
-                if (r < 0) {
-                        log_error("Failed to parse reply: %s", strerror(-r));
-                        break;
-                }
+                if (r < 0)
+                        return bus_log_parse_error(r);
 
                 if (properties)
                         r = show_properties(bus, path, &new_line);
@@ -547,10 +537,8 @@ static int login_machine(sd_bus *bus, char **args, unsigned n) {
         }
 
         r = sd_bus_message_read(reply, "o", &path);
-        if (r < 0) {
-                log_error("Failed to parse reply: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return bus_log_parse_error(r);
 
         r = sd_bus_get_property(
                         bus,
@@ -567,10 +555,8 @@ static int login_machine(sd_bus *bus, char **args, unsigned n) {
         }
 
         r = sd_bus_message_read(reply2, "u", &leader);
-        if (r < 0) {
-                log_error("Failed to parse reply: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return bus_log_parse_error(r);
 
         master = openpt_in_namespace(leader, O_RDWR|O_NOCTTY|O_CLOEXEC|O_NDELAY);
         if (master < 0) {
@@ -793,7 +779,7 @@ static int machinectl_main(sd_bus *bus, int argc, char *argv[]) {
         left = argc - optind;
 
         if (left <= 0)
-                /* Special rule: no arguments means "list-sessions" */
+                /* Special rule: no arguments means "list" */
                 i = 0;
         else {
                 if (streq(argv[optind], "help")) {