From: Matteo Croce Date: Fri, 15 Dec 2023 14:48:20 +0000 (-0800) Subject: systemctl: show success messages when showing transaction X-Git-Tag: v256-rc1~1452^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F30493%2Fhead;p=thirdparty%2Fsystemd.git systemctl: show success messages when showing transaction Extend `--show-transaction` so it shows a success message when an unit is successfully started. --- diff --git a/src/shared/bus-wait-for-jobs.c b/src/shared/bus-wait-for-jobs.c index d3f33cc376a..b3280c15dfe 100644 --- a/src/shared/bus-wait-for-jobs.c +++ b/src/shared/bus-wait-for-jobs.c @@ -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); diff --git a/src/shared/bus-wait-for-jobs.h b/src/shared/bus-wait-for-jobs.h index 7a64ad40db5..4d56c079ab3 100644 --- a/src/shared/bus-wait-for-jobs.h +++ b/src/shared/bus-wait-for-jobs.h @@ -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; diff --git a/src/systemctl/systemctl-start-unit.c b/src/systemctl/systemctl-start-unit.c index cd7aac18b68..c844f7e1e7f 100644 --- a/src/systemctl/systemctl-start-unit.c +++ b/src/systemctl/systemctl-start-unit.c @@ -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;