]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: show success messages when showing transaction 30493/head
authorMatteo Croce <teknoraver@meta.com>
Fri, 15 Dec 2023 14:48:20 +0000 (06:48 -0800)
committerMatteo Croce <teknoraver@meta.com>
Tue, 19 Dec 2023 12:52:41 +0000 (04:52 -0800)
Extend `--show-transaction` so it shows a success message when an unit
is successfully started.

src/shared/bus-wait-for-jobs.c
src/shared/bus-wait-for-jobs.h
src/systemctl/systemctl-start-unit.c

index d3f33cc376a8fd9866a55c0d29efd9aa80316d2b..b3280c15dfede0e5a974c56e6565375d9bb2fdae 100644 (file)
@@ -279,8 +279,15 @@ static int check_wait_response(BusWaitForJobs *d, WaitJobsFlags flags, const cha
                 return -EOPNOTSUPP;
         else if (streq(d->result, "once"))
                 return -ESTALE;
-        else if (STR_IN_SET(d->result, "done", "skipped"))
+        else if (streq(d->result, "done")) {
+                if (FLAGS_SET(flags, BUS_WAIT_JOBS_LOG_SUCCESS))
+                        log_info("Job for %s finished.", strna(d->name));
                 return 0;
+        } else if (streq(d->result, "skipped")) {
+                if (FLAGS_SET(flags, BUS_WAIT_JOBS_LOG_SUCCESS))
+                        log_info("Job for %s was skipped.", strna(d->name));
+                return 0;
+        }
 
         return log_debug_errno(SYNTHETIC_ERRNO(EIO),
                                "Unexpected job result, assuming server side newer than us: %s", d->result);
index 7a64ad40db597b15c4bd5db53408d74fb325a306..4d56c079ab354fd7959f9136f2fe04dd49da5a6f 100644 (file)
@@ -7,6 +7,7 @@
 
 typedef enum WaitJobsFlags {
         BUS_WAIT_JOBS_LOG_ERROR   = 1 << 0,
+        BUS_WAIT_JOBS_LOG_SUCCESS = 1 << 1,
 } WaitJobsFlags;
 
 typedef struct BusWaitForJobs BusWaitForJobs;
index cd7aac18b6861ce5b79e5b3cd936d88b6c0785d2..c844f7e1e7f63274a9bd27c954d97863e275bfc3 100644 (file)
@@ -391,6 +391,7 @@ int verb_start(int argc, char *argv[], void *userdata) {
                 WaitJobsFlags flags = 0;
 
                 SET_FLAG(flags, BUS_WAIT_JOBS_LOG_ERROR, !arg_quiet);
+                SET_FLAG(flags, BUS_WAIT_JOBS_LOG_SUCCESS, arg_show_transaction);
                 r = bus_wait_for_jobs(w, flags, make_extra_args(extra_args));
                 if (r < 0)
                         return r;