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;
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;
}
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) {
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,
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;
}
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,
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();