chiark / gitweb /
localectl: log error if bus_map_all_properties() fails
[elogind.git] / src / locale / localectl.c
index f7fea48ffeae642b5eba95688c2f2b19a5ea0e7b..5929169fe52938d386d7a774aec6e65399e1634b 100644 (file)
@@ -42,6 +42,7 @@
 #include "set.h"
 #include "path-util.h"
 #include "utf8.h"
 #include "set.h"
 #include "path-util.h"
 #include "utf8.h"
+#include "def.h"
 
 static bool arg_no_pager = false;
 static bool arg_ask_password = true;
 
 static bool arg_no_pager = false;
 static bool arg_ask_password = true;
@@ -127,8 +128,10 @@ static int show_status(sd_bus *bus, char **args, unsigned n) {
                                    "/org/freedesktop/locale1",
                                    map,
                                    &info);
                                    "/org/freedesktop/locale1",
                                    map,
                                    &info);
-        if (r < 0)
+        if (r < 0) {
+                log_error("Could not get properties: %s", strerror(-r));
                 goto fail;
                 goto fail;
+        }
 
         print_status_info(&info);
 
 
         print_status_info(&info);
 
@@ -414,7 +417,7 @@ static int nftw_cb(
             !endswith(fpath, ".map.gz"))
                 return 0;
 
             !endswith(fpath, ".map.gz"))
                 return 0;
 
-        p = strdup(path_get_file_name(fpath));
+        p = strdup(basename(fpath));
         if (!p)
                 return log_oom();
 
         if (!p)
                 return log_oom();
 
@@ -437,15 +440,14 @@ static int nftw_cb(
 
 static int list_vconsole_keymaps(sd_bus *bus, char **args, unsigned n) {
         _cleanup_strv_free_ char **l = NULL;
 
 static int list_vconsole_keymaps(sd_bus *bus, char **args, unsigned n) {
         _cleanup_strv_free_ char **l = NULL;
+        const char *dir;
 
         keymaps = set_new(string_hash_func, string_compare_func);
         if (!keymaps)
                 return log_oom();
 
 
         keymaps = set_new(string_hash_func, string_compare_func);
         if (!keymaps)
                 return log_oom();
 
-        nftw("/usr/share/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
-        nftw("/usr/share/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
-        nftw("/usr/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
-        nftw("/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
+        NULSTR_FOREACH(dir, KBD_KEYMAP_DIRS)
+                nftw(dir, nftw_cb, 20, FTW_MOUNT|FTW_PHYS);
 
         l = set_get_strv(keymaps);
         if (!l) {
 
         l = set_get_strv(keymaps);
         if (!l) {