{
struct udev_rules rules;
char *devpath;
- char temp[PATH_SIZE];
struct udevice *udev;
struct sysfs_device *dev;
int retval;
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);
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: