chiark / gitweb /
systemctl: show sysv path if it is set if the fragment path isn't in systemctl status
authorLennart Poettering <lennart@poettering.net>
Thu, 12 Aug 2010 23:28:05 +0000 (01:28 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 12 Aug 2010 23:29:30 +0000 (01:29 +0200)
fixme
src/systemctl.c

diff --git a/fixme b/fixme
index 77cbb43..e255dee 100644 (file)
--- a/fixme
+++ b/fixme
@@ -75,7 +75,9 @@
 
 * plymouth after/before getty?
 
-* in systemctl show sysv init script path
+* D-Bus call GetUnitByPID
+
+* be more forgiving when parsing unit files, when encountering incorrect lines with non assignments
 
 External:
 
index e1d4f93..8f7755f 100644 (file)
@@ -1418,7 +1418,7 @@ typedef struct UnitStatusInfo {
 
         const char *description;
 
-        const char *fragment_path;
+        const char *path;
         const char *default_control_group;
 
         bool need_daemon_reload;
@@ -1467,15 +1467,16 @@ static void print_status_info(UnitStatusInfo *i) {
 
         printf("\n");
 
-        if (i->fragment_path)
-                printf("\t  Loaded: %s (%s)\n", strna(i->load_state), i->fragment_path);
-        else if (streq_ptr(i->load_state, "failed"))
-                printf("\t  Loaded: %s%s%s\n",
-                       ansi_highlight(true),
-                       strna(i->load_state),
-                       ansi_highlight(false));
+        if (streq_ptr(i->load_state, "failed")) {
+                on = ansi_highlight(true);
+                off = ansi_highlight(false);
+        } else
+                on = off = "";
+
+        if (i->path)
+                printf("\t  Loaded: %s%s%s (%s)\n", on, strna(i->load_state), off, i->path);
         else
-                printf("\t  Loaded: %s\n", strna(i->load_state));
+                printf("\t  Loaded: %s%s%s\n", on, strna(i->load_state), off);
 
         ss = streq_ptr(i->active_state, i->sub_state) ? NULL : i->sub_state;
 
@@ -1623,7 +1624,9 @@ static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn
                         else if (streq(name, "Description"))
                                 i->description = s;
                         else if (streq(name, "FragmentPath"))
-                                i->fragment_path = s;
+                                i->path = s;
+                        else if (streq(name, "SysVPath"))
+                                i->path = s;
                         else if (streq(name, "DefaultControlGroup"))
                                 i->default_control_group = s;
                         else if (streq(name, "StatusText"))