- /* we only care about class devices and block stuff */
- if (!strstr(devpath, "class") &&
- !strstr(devpath, "block")) {
- dbg("not a block or class device");
+ sysfs_init();
+ udev_rules_init(&rules, 0);
+
+ /* remove /sys if given */
+ if (strncmp(devpath, sysfs_path, strlen(sysfs_path)) == 0)
+ devpath = &devpath[strlen(sysfs_path)];
+
+ dev = sysfs_device_get(devpath);
+ if (dev == NULL) {
+ fprintf(stderr, "unable to open device '%s'\n", devpath);
+ rc = 2;