From: Zbigniew Jędrzejewski-Szmek Date: Sat, 13 Dec 2014 17:43:07 +0000 (-0500) Subject: systemctl: do not use -1 for return code X-Git-Tag: v219~975 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5b013a2f67a5914d6e86e3914f40cf44a03da091;p=elogind.git systemctl: do not use -1 for return code Also make the error messages more specific to give a hint to the user how to solve the problem. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 8a1b481fd..324d9b60c 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -6106,19 +6106,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 +6122,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();