chiark / gitweb /
volume_id: add suspend partition detection
[elogind.git] / udevtest.c
index 22fd3735c2f96a9b8e208b18434edf188fc2c5f7..22627c05a7eb9c59dc63f2fb689817964c71f869 100644 (file)
@@ -52,7 +52,6 @@ int main(int argc, char *argv[], char *envp[])
 {
        struct udev_rules rules;
        char *devpath;
-       char temp[PATH_SIZE];
        struct udevice *udev;
        struct sysfs_device *dev;
        int retval;
@@ -70,19 +69,14 @@ int main(int argc, char *argv[], char *envp[])
                return 1;
        }
 
-       /* remove sysfs_path if given */
+       sysfs_init();
+
+       /* remove /sys if given */
        if (strncmp(argv[1], sysfs_path, strlen(sysfs_path)) == 0)
                devpath = &argv[1][strlen(sysfs_path)];
        else
-               if (argv[1][0] != '/') {
-                       /* prepend '/' if missing */
-                       snprintf(temp, sizeof(temp), "/%s", argv[1]);
-                       temp[sizeof(temp)-1] = '\0';
-                       devpath = temp;
-               } else
-                       devpath = argv[1];
+               devpath = argv[1];
 
-       sysfs_init();
        udev_rules_init(&rules, 0);
 
        dev = sysfs_device_get(devpath);
@@ -113,11 +107,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: