chiark / gitweb /
udevtest: allow /sys in the devpath paramter
[elogind.git] / udevtest.c
index 22fd3735c2f96a9b8e208b18434edf188fc2c5f7..078674a01d3b02d9f9da70a2959038767443e0c9 100644 (file)
@@ -64,6 +64,7 @@ int main(int argc, char *argv[], char *envp[])
        udev_config_init();
        if (udev_log_priority < LOG_INFO)
                udev_log_priority = LOG_INFO;
+       sysfs_init();
 
        if (argc != 2) {
                info("Usage: udevtest <devpath>");
@@ -82,7 +83,6 @@ int main(int argc, char *argv[], char *envp[])
                } else
                        devpath = argv[1];
 
-       sysfs_init();
        udev_rules_init(&rules, 0);
 
        dev = sysfs_device_get(devpath);
@@ -113,11 +113,16 @@ int main(int argc, char *argv[], char *envp[])
 
        info("looking at device '%s' from subsystem '%s'", udev->dev->devpath, udev->dev->subsystem);
        retval = udev_device_event(&rules, udev);
-       if (retval == 0) {
+       if (retval == 0 && !udev->ignore_device && udev_run) {
                struct name_entry *name_loop;
 
-               list_for_each_entry(name_loop, &udev->run_list, node)
-                       info("run: '%s'", name_loop->name);
+               list_for_each_entry(name_loop, &udev->run_list, node) {
+                       char program[PATH_SIZE];
+
+                       strlcpy(program, name_loop->name, sizeof(program));
+                       udev_rules_apply_format(udev, program, sizeof(program));
+                       info("run: '%s'", program);
+               }
        }
 
 exit: