The -e option is not that useful. Normally, when a device cannot be detected, then there should be no reason to not try to detect other devices. When a user is interested in a particular detect result, detect can still be called with that (and only that) device. We could also argue that the user should not care about the result of the detect call, but instead check if the desired device is present afterwards. Drop handling of the -e option, but still ignore it for compatibility reasons. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- commands/detect.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/commands/detect.c b/commands/detect.c index 1586a6fb54..d68d738453 100644 --- a/commands/detect.c +++ b/commands/detect.c @@ -26,9 +26,8 @@ static int do_detect(int argc, char *argv[]) { struct device_d *dev; - int opt, i, ret; + int opt, i, ret, err; int option_list = 0; - int option_error = 0; int option_all = 0; while ((opt = getopt(argc, argv, "ela")) > 0) { @@ -37,7 +36,6 @@ static int do_detect(int argc, char *argv[]) option_list = 1; break; case 'e': - option_error = 1; break; case 'a': option_all = 1; @@ -56,37 +54,36 @@ static int do_detect(int argc, char *argv[]) } if (option_all) { - for_each_device(dev) { - ret = device_detect(dev); - if (ret && ret != -ENOSYS && option_error) - return ret; - } + for_each_device(dev) + device_detect(dev); + return 0; } if (argc == optind) return COMMAND_ERROR_USAGE; + err = 0; + for (i = optind; i < argc; i++) { ret = device_detect_by_name(argv[i]); - if (ret && option_error) - return ret; + if (!err && ret) + err = ret; } - return 0; + return err; } BAREBOX_CMD_HELP_START(detect) BAREBOX_CMD_HELP_TEXT("Options:") BAREBOX_CMD_HELP_OPT ("-l", "list detectable devices") -BAREBOX_CMD_HELP_OPT ("-e", "bail out if one device fails to detect") BAREBOX_CMD_HELP_OPT ("-a", "detect all devices") BAREBOX_CMD_HELP_END BAREBOX_CMD_START(detect) .cmd = do_detect, BAREBOX_CMD_DESC("detect devices") - BAREBOX_CMD_OPTS("[-lea] [devices]") + BAREBOX_CMD_OPTS("[-la] [devices]") BAREBOX_CMD_GROUP(CMD_GRP_HWMANIP) BAREBOX_CMD_COMPLETE(device_complete) BAREBOX_CMD_HELP(cmd_detect_help) -- 2.11.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox