]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/udev/udevadm-hwdb.c
Merge pull request #30284 from YHNdnzj/fstab-wantedby-defaultdeps
[thirdparty/systemd.git] / src / udev / udevadm-hwdb.c
index e9a1af65fcd96939073793d672f0387845d7ab25..f306a4ffd6d82975d078be0c5eb010f0f69c923c 100644 (file)
@@ -1,10 +1,9 @@
-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 
 #include <getopt.h>
 
 #include "hwdb-util.h"
 #include "udevadm.h"
-#include "util.h"
 
 static const char *arg_test = NULL;
 static const char *arg_root = NULL;
@@ -23,8 +22,8 @@ static int help(void) {
                "  -r --root=PATH       Alternative root path in the filesystem\n\n"
                "NOTE:\n"
                "The sub-command 'hwdb' is deprecated, and is left for backwards compatibility.\n"
-               "Please use systemd-hwdb instead.\n"
-               program_invocation_short_name);
+               "Please use systemd-hwdb instead.\n",
+               program_invocation_short_name);
 
         return 0;
 }
@@ -48,7 +47,7 @@ static int parse_argv(int argc, char *argv[]) {
         int c;
 
         while ((c = getopt_long(argc, argv, "ust:r:Vh", options, NULL)) >= 0)
-                switch(c) {
+                switch (c) {
                 case 'u':
                         arg_update = true;
                         break;
@@ -71,7 +70,7 @@ static int parse_argv(int argc, char *argv[]) {
                 case '?':
                         return -EINVAL;
                 default:
-                        assert_not_reached("Unknown option");
+                        assert_not_reached();
                 }
 
         return 1;
@@ -84,19 +83,20 @@ int hwdb_main(int argc, char *argv[], void *userdata) {
         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.");
+
+        log_notice("udevadm hwdb is deprecated. Use systemd-hwdb instead.");
 
-        if (arg_update) {
+        if (arg_update && !hwdb_bypass()) {
                 r = hwdb_update(arg_root, arg_hwdb_bin_dir, arg_strict, true);
                 if (r < 0)
                         return r;
         }
 
         if (arg_test)
-                return hwdb_query(arg_test);
+                return hwdb_query(arg_test, NULL);
 
         return 0;
 }