--- udev-094.orig/udevtrigger.c 2006-06-12 09:27:03.000000000 +0100 +++ udev-094/udevtrigger.c 2006-07-05 10:57:54.662529856 +0100 @@ -321,6 +321,9 @@ int main(int argc, char *argv[], char *envp[]) { int i; + int scan_block = 1; + int scan_bus = 1; + int scan_class = 1; logging_init("udevtrigger"); udev_config_init(); @@ -331,21 +334,28 @@ for (i = 1 ; i < argc; i++) { char *arg = argv[i]; - if (strcmp(arg, "--verbose") == 0 || strcmp(arg, "-v") == 0) + if (strcmp(arg, "--no-scan-block") == 0) + scan_block = 0; + else if (strcmp(arg, "--no-scan-bus") == 0) + scan_bus = 0; + else if (strcmp(arg, "--no-scan-class") == 0) + scan_class = 0; + else if (strcmp(arg, "--verbose") == 0 || strcmp(arg, "-v") == 0) verbose = 1; else if (strcmp(arg, "--dry-run") == 0 || strcmp(arg, "-n") == 0) dry_run = 1; else { - fprintf(stderr, "Usage: udevtrigger [--verbose] [--dry-run]\n"); + fprintf(stderr, "Usage: udevtrigger [--no-scan-block] [--no-scan-bus] [--no-scan-class]\n"); + fprintf(stderr, " [--verbose] [--dry-run]\n"); goto exit; } } sysfs_init(); - udev_scan_bus(); - udev_scan_class(); - udev_scan_block(); + if (scan_bus) udev_scan_bus(); + if (scan_class) udev_scan_class(); + if (scan_block) udev_scan_block(); exec_lists(); sysfs_cleanup();