chiark / gitweb /
job: also print status messages when we successfully started a unit
authorLennart Poettering <lennart@poettering.net>
Sat, 16 Apr 2011 01:07:38 +0000 (03:07 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 16 Apr 2011 01:07:38 +0000 (03:07 +0200)
src/job.c

index dcfa323b0ef1cf9b4ef75326f17960e18c91b518..26e1a7ce99aa2da2daf9ef5bd49a6cb33ef01851 100644 (file)
--- a/src/job.c
+++ b/src/job.c
@@ -476,6 +476,52 @@ int job_run_and_invalidate(Job *j) {
         return r;
 }
 
+static void job_print_status_message(Unit *u, JobType t, JobResult result) {
+        assert(u);
+
+        if (t == JOB_START) {
+
+                switch (result) {
+
+                case JOB_DONE:
+                        unit_status_printf(u, "Started %s.\n", unit_description(u));
+                        break;
+
+                case JOB_FAILED:
+                        unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id);
+                        break;
+
+                case JOB_DEPENDENCY:
+                        unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "aborted" ANSI_HIGHLIGHT_OFF " because a dependency failed.\n", unit_description(u));
+                        break;
+
+                case JOB_TIMEOUT:
+                        unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id);
+                        break;
+
+                default:
+                        ;
+                }
+
+        } else if (t == JOB_STOP) {
+
+                switch (result) {
+
+                case JOB_TIMEOUT:
+                        unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id);
+                        break;
+
+                case JOB_DONE:
+                case JOB_FAILED:
+                        unit_status_printf(u, "Stopped %s.\n", unit_description(u));
+                        break;
+
+                default:
+                        ;
+                }
+        }
+}
+
 int job_finish_and_invalidate(Job *j, JobResult result) {
         Unit *u;
         Unit *other;
@@ -512,12 +558,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) {
         t = j->type;
         job_free(j);
 
-        if (result == JOB_FAILED && t == JOB_START)
-                unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id);
-        else if (result == JOB_TIMEOUT && t == JOB_START)
-                unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id);
-        else if (result == JOB_TIMEOUT && t == JOB_STOP)
-                unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id);
+        job_print_status_message(u, t, result);
 
         /* Fail depending jobs on failure */
         if (result != JOB_DONE) {