]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/udev/udevadm-hwdb.c
libudev: rescan devices when filter is updated
[thirdparty/systemd.git] / src / udev / udevadm-hwdb.c
index 1df7c82dfa7e0b22177b0570047eda784d71c36e..7f8960f549f96df889d89097951d1b823735b84f 100644 (file)
@@ -2,11 +2,7 @@
 
 #include <getopt.h>
 
-#include "sd-hwdb.h"
-
-#include "alloc-util.h"
 #include "hwdb-util.h"
-#include "string-util.h"
 #include "udevadm.h"
 #include "util.h"
 
@@ -16,21 +12,6 @@ static const char *arg_hwdb_bin_dir = NULL;
 static bool arg_update = false;
 static bool arg_strict = false;
 
-static int hwdb_test(void) {
-        _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL;
-        const char *key, *value;
-        int r;
-
-        r = sd_hwdb_new(&hwdb);
-        if (r < 0)
-                return r;
-
-        SD_HWDB_FOREACH_PROPERTY(hwdb, arg_test, key, value)
-                printf("%s=%s\n", key, value);
-
-        return 0;
-}
-
 static int help(void) {
         printf("%s hwdb [OPTIONS]\n\n"
                "  -h --help            Print this message\n"
@@ -84,7 +65,7 @@ static int parse_argv(int argc, char *argv[]) {
                         arg_root = optarg;
                         break;
                 case 'V':
-                        return version();
+                        return print_version();
                 case 'h':
                         return help();
                 case '?':
@@ -99,16 +80,13 @@ static int parse_argv(int argc, char *argv[]) {
 int hwdb_main(int argc, char *argv[], void *userdata) {
         int r;
 
-        log_set_max_level_realm(LOG_REALM_SYSTEMD, log_get_max_level());
-
         r = parse_argv(argc, argv);
         if (r <= 0)
                 return r;
 
-        if (!arg_update && !arg_test) {
-                log_error("Either --update or --test must be used.");
-                return -EINVAL;
-        }
+        if (!arg_update && !arg_test)
+                return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+                                       "Either --update or --test must be used.");
 
         if (arg_update) {
                 r = hwdb_update(arg_root, arg_hwdb_bin_dir, arg_strict, true);
@@ -117,7 +95,7 @@ int hwdb_main(int argc, char *argv[], void *userdata) {
         }
 
         if (arg_test)
-                return hwdb_test();
+                return hwdb_query(arg_test);
 
         return 0;
 }