X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;h=20bc3bdf1c93eaf4cdebf34c6d0e941c42e05c76;hb=3f36991e00634026db3c603a10dfcb3af2c5b7b2;hp=8a1b481fdc3b9d0a78749a935c4ace8a9d22cfcd;hpb=0faacd470dfbd24f4c6504da6f04213aa05f9d19;p=elogind.git diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 8a1b481fd..20bc3bdf1 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2270,6 +2270,14 @@ static int need_daemon_reload(sd_bus *bus, const char *unit) { return b; } +static void warn_unit_file_changed(const char *name) { + log_warning("%sWarning:%s %s changed on disk. Run 'systemctl%s daemon-reload' to reload units.", + ansi_highlight_red(), + ansi_highlight_off(), + name, + arg_scope == UNIT_FILE_SYSTEM ? "" : " --user"); +} + typedef struct WaitData { Set *set; @@ -2676,8 +2684,7 @@ static int start_unit_one( return bus_log_parse_error(r); if (need_daemon_reload(bus, name) > 0) - log_warning("Warning: Unit file of %s changed on disk, 'systemctl%s daemon-reload' recommended.", - name, arg_scope == UNIT_FILE_SYSTEM ? "" : " --user"); + warn_unit_file_changed(name); if (s) { char *p; @@ -3606,10 +3613,7 @@ static void print_status_info( } if (i->need_daemon_reload) - printf("\n%sWarning:%s Unit file changed on disk, 'systemctl %sdaemon-reload' recommended.\n", - ansi_highlight_red(), - ansi_highlight_off(), - arg_scope == UNIT_FILE_SYSTEM ? "" : "--user "); + warn_unit_file_changed(i->id); } static void show_unit_help(UnitStatusInfo *i) { @@ -4612,8 +4616,7 @@ static int cat(sd_bus *bus, char **args) { return log_oom(); if (need_daemon_reload(bus, *name) > 0) - log_warning("Unit file of %s changed on disk. Run 'systemctl%s daemon-reload'.", - *name, arg_scope == UNIT_FILE_SYSTEM ? "" : " --user"); + warn_unit_file_changed(*name); r = sd_bus_get_property_string( bus, @@ -6055,8 +6058,7 @@ static int unit_find_path(sd_bus *bus, const char *unit_name, const char *templa return log_oom(); if (need_daemon_reload(bus, unit_name) > 0) { - log_warning("%s ignored: unit file changed on disk. Run 'systemctl%s daemon-reload'.", - unit_name, arg_scope == UNIT_FILE_SYSTEM ? "" : " --user"); + warn_unit_file_changed(unit_name); return 0; } @@ -6106,19 +6108,15 @@ static int find_paths_to_edit(sd_bus *bus, char **names, char ***paths) { if (arg_scope == UNIT_FILE_USER) { r = user_config_home(&user_home); if (r < 0) - return log_oom(); - else if (r == 0) { - log_error("Cannot edit units for the user instance: home directory unknown"); - return -1; - } + return log_error_errno(r, "Failed to query XDG_CONFIG_HOME: %m"); + else if (r == 0) + return log_error_errno(ENOTDIR, "Cannot edit units: $XDG_CONFIG_HOME and $HOME are not set."); r = user_runtime_dir(&user_runtime); if (r < 0) - return log_oom(); - else if (r == 0) { - log_error("Cannot edit units for the user instance: runtime directory unknown"); - return -1; - } + return log_error_errno(r, "Failed to query XDG_CONFIG_HOME: %m"); + else if (r == 0) + return log_error_errno(ENOTDIR, "Cannot edit units: $XDG_RUNTIME_DIR is not set."); } r = lookup_paths_init(&lp, @@ -6126,10 +6124,8 @@ static int find_paths_to_edit(sd_bus *bus, char **names, char ***paths) { arg_scope == UNIT_FILE_USER, arg_root, NULL, NULL, NULL); - if (r < 0) { - log_error_errno(r, "Failed get lookup paths: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed get lookup paths: %m"); avoid_bus_cache = !bus || avoid_bus();