chiark / gitweb /
manager: add systemd.show_status=auto mode
[elogind.git] / src / shared / exit-status.c
index 45131f2b2af96054778bac3fc8024c3274c87b5a..ef2d63f57de4362d15b4c5525819a8786cfb568d 100644 (file)
@@ -190,3 +190,20 @@ bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status) {
                 code == CLD_EXITED &&
                 (status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
 }
+
+int parse_show_status(const char *v, ShowStatus *ret) {
+        int r;
+
+        assert(v);
+        assert(ret);
+
+        if (streq(v, "auto")) {
+                *ret = SHOW_STATUS_AUTO;
+                return 0;
+        }
+        r = parse_boolean(v);
+        if (r < 0)
+                return r;
+        *ret = r ? SHOW_STATUS_YES : SHOW_STATUS_NO;
+        return 0;
+}