+ while (1) {
+ int option;
+
+ option = getopt_long(argc, argv, "+dhV", options, NULL);
+ if (option == -1)
+ break;
+
+ switch (option) {
+ case 'd':
+ debug = 1;
+ if (udev_get_log_priority(udev) < LOG_INFO)
+ udev_set_log_priority(udev, LOG_INFO);
+ break;
+ case 'h':
+ rc = help(udev, argc, argv);
+ goto out;
+ case 'V':
+ rc = version(udev, argc, argv);
+ goto out;
+ default:
+ goto out;
+ }
+ }
+ command = argv[optind];
+
+ if (command != NULL)
+ for (i = 0; cmds[i].cmd != NULL; i++) {
+ if (strcmp(cmds[i].name, command) == 0) {
+ optind++;
+ rc = run_command(udev, &cmds[i], argc, argv);
+ goto out;
+ }
+ }
+
+ fprintf(stderr, "missing or unknown command\n\n");
+ help(udev, argc, argv);